_respawn_dashboard_processes appended --no-open to the argv before the
Popen call and returned the modified argv in the failed list, so the
receipt-side matching (pid_cmdline.get(p) in failed_cmds) never matched
a dashboard command — the #109290 gap survived for the most common
case. Keep the spawn argv separate and report the caller's original
argv on failure, which is what the cmdline reconciliation compares
against.