Each notification type (due_soon, overdue) now runs at its own configured hour. Due-soon uses task_due_soon_hour preference, overdue uses task_overdue_hour preference. Previously only task_due_soon_hour was checked, causing overdue notifications to never fire for users with custom overdue hours. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>