A background daemon that fails to start during an npm reinstall now waits for the install to finish and retries.
When the background daemon binary fails to exec, the code now distinguishes a stale npm stub, a fresh stub, and a genuinely missing file, using helpers that check file age and sibling .{pkg}- staging directories. The wait loop gains an "extended" retry phase when an npm install looks to be actively in progress, so a transient background daemon whose first spawn attempt exits during an npm reinstall of Claude Code now waits for the reinstall to finish and retries instead of failing immediately. Telemetry now records extended, install_in_progress, and gaveUpOnNpmInstallInProgress.