Fix 1 (stale error_detail):
open_file_error_detail is now cleared at the start of every mode's
branch (native, onsite, default) alongside open_file_clicked=true.
Previously it was cleared mid-way through the native flow (Step 1),
so a stale error from a previous failed run could flash briefly.
Fix 2 (stuck 'Opening...' during post_script sleep):
After the Step 4 open call returns (run_cmd or open_local_file_v2),
update the status message immediately to 'App opened — running setup...'
so the button doesn't appear frozen for the full post_delay_ms wait.
Fix 3 (safety valve for hanging native calls):
A 60s setTimeout is registered at the start of the native branch.
If any native IPC call hangs indefinitely and the existing per-path
reset timeouts never fire, this force-resets open_file_clicked after
60s. All normal paths complete within ~8s so this only triggers on
true hangs. ERR_NETWORK_CHANGED cannot re-enter the download path
because the open_file_clicked guard blocks re-entry.