What: main() calls update_pause_record.recover() unconditionally instead of inside the raw
`"update" not in sys.argv[1:]` block; recover() already skips the parsed `update`/`gateway run`.
Why: `hermes --resume update ...` (a session named "update") left gateways a killed update paused
stopped, though no update was running.
Red: pre-fix main.py -> [--resume update --version] leaves the orphaned record on disk.
Green: test_startup_recovery_follows_the_parsed_command_not_raw_argv passes both cases (`update --help` still defers).