WaitNamedPipe can report an instance that a concurrent client (the
monitor polls status every second) grabs before our CreateFile runs;
the single-attempt Ask then failed with 'no answer from the service'.
Retry the wait+open until a 5s overall deadline.
- diffConfig reports the env var names (from new struct tags) instead of
Go field names, so the reload-env reply names what the user can change
- the monitor's GPU line now shows the game detector's last finding
(external holders or none) and how long ago the check ran
- control channel: 10s per-connection watchdog (abortive force-close),
cap of 32 concurrent connections, reload-env rate-limited; command
read was already capped at 4 KiB