fix(server): hub usage reads of one account run one at a time

Two hub sources pointing at the same hub read an account at once and both
probed it. Reads of one key now take a per-key lock (the shared KeyedLock),
so a read waiting behind another gets its answer without asking. forget takes
the same lock, so it lands after any read in flight and the forget counter
goes. Entry pruning is dropped: it reset a failing key's backoff after a quiet
spell, and entries are one per hub account identity, which a restart clears.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
7d6cc5b2b6Yannic Charlon committed on 10/17/2026, 10:48:23 PMparent54c8cf9
2 files changedLine totals unavailable