Availability failure ≠ proven event-loop root cause.Low CPU, a listening port, no child, and a working standalone fetch narrow the surface. Only repeated thread state can connect the live Host to a stable wait.

Hold four claims apart.

Process lives

The verified PID still owns port 3080.

Host is unavailable

Independent timestamped HTTP probes time out.

Turn is the trigger

Idle controls pass; one bounded submit precedes the first failure.

Frame owns the wait

The same main-thread stack persists across three dumps.

Capture before recovery.

01 · identityGet-NetTCPConnection

Join the listener to one executable and sanitized command line.

→
02 · timelineInvoke-WebRequest

Record idle and post-submit status at fixed intervals.

→
03 · stateprocdump -ma -n 3

Take full samples five seconds apart while requests fail.

procdump64.exe -accepteula -ma -n 3 -s 5 $dshPid C:\dsh-hang-dumps

Route the repeated frames.

same wait × 3stable owner candidateResolve module, symbol, and call path.
different framesslow progressCorrelate with the probe and provider timeline.
module loadedpresence onlyDo not call it causal.
TUN changes resultnetwork correlationRepeat the same prompt and compare stacks.
standalone fetch 200separate process pathDo not clear DSH streaming or persistence.
watchdog restartavailability recoveryCapture the first hang before automation kills it.

Source narrows; dumps connect.

The pinned rc.2 production tree contains no Atomics.wait() or execSync(). Its production spawnSync() sites are bounded to paths such as sandbox probes, plugin installation, and Windows process-tree termination. Zstandard append uses promisified node:zlib. None of those facts proves the cause—but they prevent package names from becoming unsupported conclusions.

Recover after evidence.

  1. Hash the dumpsKeep them on an encrypted private volume.
  2. Mark the turn unknownDo not retry any possible side effect blindly.
  3. Try Ctrl+C oncePreserve whether the Host can handle it.
  4. Recheck PID ownershipStop only the process that still owns the listener.
  5. Start a new SessionRun one-variable A/B tests after restart.
  6. Disable premature watchdogsThey restore service but erase the first incident.

Bring a sequence, not a suspect list.

The full runbook includes PowerShell probes, ProcDump handling, WinDbg comparison, safe A/B design, cleanup, and an upstream report checklist.

Read the complete runbook