No blocking involved.  It will reschedule the 'stop' for when the OSDMonitor is writable, so we can go ahead and perform all the blacklisting we want.  If the OSDMonitor is not writable, we shouldn't be proceeding anyway -- we may not have a pending value on the OSDMonitor.

In a sense, yes, this is just covering everybody cross-proposing to the OSDMonitor.  I haven't seen this being triggered, but then again I don't usually shutdown the MDS via 'ceph stop_cluster' (or whatever the command is) -- which is what this does: it just stops an MDS, not the OSDs AFAICT.

FWIW, this command has nothing to do with monitor shutdown.  Even if it were, if the OSDMonitor had already been shutdown, we would probably be in much worse trouble if we were to let the MDSMonitor continue work, so in that case we would be better off scheduling the new C_Stop() and return.