The live realtime scan loop paces itself with WaitTillNextSecond, which on
Windows sleeps ~15ms (default timer granularity). The test advances simulated
time 60 minutes per iteration over ~7 weeks (~1200 iterations), so the loop
could take longer than the 15s wait timeout, causing Exit to cut it short
before the last weekly event fired and intermittently dropping the final
expected trigger time.
Time is fully driven by the ManualTimeProvider in tests, so override
WaitTillNextSecond to a no-op in the test handler. The 60-minute stepping is
deterministic regardless of sleeping, so the loop now runs at full speed and
the test passes reliably.
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>