Batch 12 — Reminders that tell the truth
A read-only trace of the reminder pipeline found that the period-end check-in's buttons write the wrong records (tapping 'Ended' inserts a new period starting today), that actions carry no date and so apply to whatever day they are tapped on, that the 'stop asking after three' counter resets on every process start, that a denied notification permission still counts as having asked, and — verified against WorkManager's bytecode — that changing the reminder time after the first reminder has fired does not move it.
This batch fixes each, gives the worker an error taxonomy instead of silent success, dismisses a reminder once it is answered, and puts ReminderWorker, NotificationActionHandler and the scheduler under test for the first time.
Landed when: every issue below is closed; no reminder action can write the wrong record or the wrong day; ReminderWorker, NotificationActionHandler and the scheduler each have a named test; the screen copy about timing is true.