tear
Transition state to SeamState.Torn with reason, completing incoming — matching every real seam (NwSeam.latchTorn, MeshSeam.tearDown, InMemorySeam.close), all of which close the spool on tear so a consumer that relies on incoming completing (or wrongly processes frames after Torn) can't pass against this fake but fail in production. Idempotent.