When adaptive timing shifts a late-night dose past midnight (e.g. 23:00
→ 00:42), the scheduler would create a new pending schedule on the next
day even if the dose was already taken. The proximity window was too
narrow to match the take log against the shifted time.
- Skip creating schedules for doses already taken/skipped (checks
today + yesterday logs against base_time)
- Fix midnight wraparound in proximity check for should_send_nag
- Display base_time (actual dose time) in reminders instead of the
internal adjusted_time
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>