crimson/mgr: prevent pg stats report pile-up in overloaded store
When AlienStore's thread pool is saturated (e.g. during PG splitting),
pool_statfs() calls inside OSD::get_stats() can get stuck behind
hundreds of queued transactions in the free_slots semaphore. Because
Client::report() dispatched get_stats() unconditionally every 5 seconds,
hundreds of stuck pool_statfs() calls accumulated, further exhausting
the semaphore and making recovery impossible.
Fix by tracking whether a get_stats() call is already in flight and
skipping new dispatches until the current one completes. Emit a
cluster-log warning every ~60 seconds when stats reporting is stuck.
This limits the damage from thread pool starvation to a single consumed
free_slot instead of an unbounded pile-up.