jsconsumer: settle the terminal path on a context shutdown cannot cancel
Commit

The capture and the DoubleAck ran on the handler's context. The module's shutdown ordering cancels the loops' context, waits for them to return, and only THEN drains the connections (nuts.ShutdownGroup, COR-923) — so for the whole join window that context is already done while the connection is still fully usable.
A rollout landing on the FINAL delivery therefore failed the capture on ctx.Err() alone and reported OutcomeStranded: a strand manufactured by pure timing, on a message the broker would have accepted, and OutcomeStranded is precisely the outcome that means "a human must run the break-glass runbook". Cancellation arriving one step later reported OutcomeUncertain instead, pointing a responder at a message that needed one more round-trip. Both are the same defect: nothing about the terminal path wants to be abandoned halfway, and it is the only path where giving up costs a pinned floor.
The terminal path now derives its context with WithoutCancel. Bounds are unchanged and are what keep this safe: the capture publish and the DoubleAck each apply their own timeout (dlqPublishTimeout, dlqAckTimeout), which matters because WithoutCancel drops the parent's deadline along with its cancellation. Values are preserved, so the handler's span and trace context still carry into the capture. This narrows the window rather than closing it absolutely — a terminate outlasting nuts.DefaultJoinTimeout still has its connection drained under it — but it removes the case that failed immediately and by construction.
Testing this needed fakes that can observe a context at all: the shared FakeMsg discards the one it is handed and fakeDLQ ignores it, so a cancellation test written against them would pass on the unfixed code. Two local doubles fix that — a publisher that fails a cancelled publish the way JetStream does, and a message that records its DoubleAck's context. Against the unfixed path the new test fails with settle:stranded, which is the production symptom exactly.
Refs ENT-1601, ENT-1535, COR-923.
Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com Claude-Session: https://claude.ai/code/session_018qXhU99D2Sxaa32yZWwYRP Entire-Checkpoint: 61ae2fc9721b