electLobby
Symmetric lobby entry both peers call identically: weave the mesh via us.tractat.kuilt.core.Rendezvous.New (a constant session name), then return an ElectionLobby over the woven seam. Every peer elects the same host (min(peers)); on Start the elected host runs the freeze round and each peer adopts a Room once (#1439).
The seam's lifetime belongs to the lobby until a Room adopts it (or ElectionLobby.leave).
Weave timeout: this delegates to the Loom's own weave. On a real radio fabric (e.g. NwLoom) weave blocks until the first peer resolves and may time out if no peer appears — configure the fabric's weave timeout generously for a "wait for players" lobby. The lobby's live membership always reads from ElectionLobby.peers (the woven seam), never a discovery roster.