enterWeaving
Transition Woven → Weaving. Held until recover or tear is called.
No-op if already SeamState.Weaving or SeamState.Torn.
Writes _state before _peers so that the delegate-peers collector, on its next emission, sees SeamState.Weaving and skips — narrowing the dual-write window. The race is in any case unmanifestable on the confined single-threaded test dispatcher this class is always used with: the collector's check-and-write is a single lambda with no suspension point, so it is atomic there. Full elimination on a multi-threaded dispatcher would require locking the collector's check+write together; unnecessary for this test-only class.