Reserve fixture ports together and check child liveness

When a test starts several local server fixtures, repeated ephemeral bind-and-close allocation can assign the same port twice before either server starts. Reserve the whole port set simultaneously before releasing sockets to child processes. Check each intended child's liveness before and after HTTP readiness, so a exited child cannot be silently accepted merely because another server responds on that port. This addresses collisions within the fixture allocator and improves failure attribution. Releasing sockets still leaves an external allocation race; stronger isolation requires socket handoff or service-specific readiness identity, rather than assuming every responding endpoint is the intended child.

Applies when: End-to-end tests launch multiple local subprocess servers on ephemeral ports. Keywords: fixture ephemeral port collision subprocess readiness bind child liveness