Fixes a scheduled block that runs past midnight — a 21:00–08:00 block could relock for its full 11 hours the next morning, hours after its window had closed, if Windows deferred the scheduled start until the machine woke up.
- A block's run is now resolved against the day it started on, so one crossing midnight is understood as still running, finishing, or over — never as about to begin.
- A block only ever locks for the time actually left in its window.
- A wake-deferred start request can no longer fire a block whose window has already closed.
- A block records which run it performed, so one bad fire can't silently swallow that night's real block.