Summary
- Replace the eight-second local-notification window with a bounded two-minute window supplied by the host harness.
- Report the earliest delivery deadline before entering the native bridge; delayed callbacks cannot reset it.
- Assert the app has stopped before that deadline, log the remaining margin, and bound the banner wait to the remaining interval plus delivery grace.
- Preserve the existing overall UI-test budget plus the scheduled interval, and propagate failed XCUITest exits.
Verification
- Regression tests execute the actual driver scheduling block, including delayed callbacks, invalid windows and native rejection; the old eight-second implementation fails them.
- Four focused scheduling tests pass (20 assertions); the full protocol suite passed before the fourth case was added.
- Pickier, Swift syntax parsing and git diff checks pass.
- Real shim/runtime simulator E2E is required before merge.
Fixes #307. No production notification API changes and no retries or skipped phases are introduced.