- Replaced the subprocess-based delayed-banner test with in-process
tests of the exported waitForTcpServerListening gate (banner split
across chunks, stdout end without banner).
- Dropped wall-clock elapsed assertions from the ghost-socket tests;
the connection-closed rejection message already distinguishes the
wake path from a request timeout.