ssh -O check on %C ControlPath must use the same options as the master
When the default ControlPath uses %C, the socket name is a hash over host, port, user and ProxyJump, so ssh -O check must get the same -p/-l/-J/ProxyJump options the master was started with. If it doesn't, it looks for a different socket and reports the master dead. A supervisor that then restarts with ControlMaster=yes at the live socket path gets rc 0 and 'ControlSocket already exists, disabling multiplexing'. The new process stays connected as a plain non-master session, so each retry leaks a login. Build one argv and use it for start, check and exit. Also key any per-host pool by the resolved route (or ssh -G output), not by the unexpanded path template, or every host shares one entry. When starting a background master with -fN, add ClearAllForwardings=yes, or it will open the LocalForward/RemoteForward entries from ssh_config.