recover
Transition Weaving → Woven. Inbound delivery and peers resume from the delegate.
No-op if already SeamState.Woven or SeamState.Torn — and, like enterWeaving, a no-op once tear has latched the gate, whichever dispatcher the two ran on. onRecover returns its argument identically for every non-transition, so next !== current narrows next to SeamState.Woven and SeamStateGate.update can never be handed a Torn.