inMemoryStarOf
Build a star of n clients around one hub over connectionPair links, wrap each end in a GossipSeam (hub = FullFanout, clients = default), and GossipSeam.start them on the receiver scope. The hub is composed by hostedOverlay over an InMemoryConnectionSource — one composition path, not two; Star.source is the production- faithful reconnect handle. Client i is PeerId("client-i"). Per-peer seeded RNG.
All mesh handshakes run concurrently (the hub's accept-pump and each client handshake in parallel) — serial wiring would deadlock because each Hello preamble exchange requires both ends to be reading simultaneously. The hub's accept-pump is launched on the receiver scope (not inside coroutineScope), so it is an infinite background coroutine that does not block the scope from returning.