The subscriber is started before the injection, and the injection itself (idle handshake, quiescence, delivery grace) can take tens of seconds, so a first-event budget of T + K x N measured from the subscription could expire before `started` was even possible. The wrapper now passes --ack-timeout <wall clock>: it judges delivery with _wait_started (T from the injection) and reaps the subscriber on failure; K x N applies from the first event on. A standalone subscriber keeps T + K x N. Documented in MESSAGING.md 4.3. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VCgu9Fa9iT7TbJUSzdq4Ff