`server.ping` keeps succeeding on a server that is stalled, and nothing compared its tip
with the others', so it stayed the active server for ever.
- The listener records when the last header was accepted (monotonic clock, a module
attribute so tests can move it).
- After every successful ping, ElectrumListener._check_not_stalled: once the last accepted
header is older than 360s the other servers are asked for their tip
(blockchain.headers.subscribe, ELC-14's timeouts); if any reports a higher height than
ours the session ends with ServerStalledError and run() rotates to the next server. If
none does the chain is just quiet and the session goes on.
No existing test changed. ELC-29 and /admin/electrum (the connection state and the age of
the last header, B-92) are untouched.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>