862f821d76
Follow-up to the #4420 opener hardening: absolute-path rundll32 fixes the stripped-PATH spawn throw, but rundll32 exits 0 unconditionally, so the delayed-failure telemetry added there can never observe a Windows launch failure. Replace it with %SystemRoot%-resolved PowerShell Start-Process via -EncodedCommand: - failures ShellExecute itself reports (missing target, no handler executable, access denied) surface as exit code 1 and reach the existing non-zero-exit logging (verified live on Windows 11: missing file exits 1; unregistered schemes exit 0 on any opener because the OS hands them to the app-picker — documented limitation); - the UTF-16LE/base64 payload keeps OAuth query strings opaque to cmd/PowerShell metacharacter parsing; embedded single quotes are doubled into a PS literal; - %SystemRoot% anchoring with a bare-name PATH fallback preserves the stripped-PATH resilience from #4420. Also pins the WSL-mount test's path.resolve against Windows dev hosts so the mocked linux platform stays deterministic. Refs #4418