3b194a3e37
connectSocket captured only resolve from Promise.withResolvers and its error handler merely errored the stream, so a Bun.connect failure (ECONNREFUSED/ENOENT/EACCES on a stat-ready-but-dead socket) never settled the promise. The unbounded await in #spawnSocketUnix then hung the launch forever, and the surrounding kill/reap guard could not fire. Capture reject, track an opened flag, reject on error/close-before-open and on the Bun.connect promise rejection, and bound the connect with a timeout matching the launch deadline (cleared on settle). Thread timeoutMs from #spawnSocketUnix. Export connectSocket for a deterministic reject-path test. Fixes #4087