Folds the final-head review and /simplify-code pass on #141070:
- update_serve_obligations: defer_manual_serve and defer_unit_serve share
_defer_identified (pid/create-time guard, dead-pid discharge, reminder
write) instead of two copies; a unit row's failed-write warning says
"unit restart reminder", not "manual".
- update_cmd_fleet: a positive _is_serve_or_dashboard_unit name gate,
composed into _is_hermes_gateway_unit; _is_serve_unit uses it rather
than "gateway gate minus SIGUSR1 support". _SERVE_SKIP_REASON names
hermes-dashboard* units too.
- update_cmd_fleet_verify: SERVE_ONLY_REASON_PREFIX and the gateway
sentence are module constants, so the producer and the Desktop
predicate share one spelling; the test now feeds the producer's own
reasons to both scripts.
- Desktop hand-offs (posix.sh, windows.ps1): drop the gateway hint only
when EVERY gateway_restart line is serve/dashboard-only, so a serve-only
line next to a raw restart-phase error keeps it; case-sensitive in
PowerShell (-cmatch) like grep.
- main_dashboard._format_restart_commands replaces three copies of the
backticked " or " join.
- Docstrings: already_restarted_units covers declined and failed units.