The ShardsvrReshardCollection command does not flag the operation context to be interrupted during a stepdown, which is commonly done by other commands. This means that when calling getOrCreateInstance, it's possible to hang in the call to _waitForRecoveryCompletion when waiting for the state to reach kRecovered. After a stepdown, the state will be set to kPaused, so it's necessary that the operation context be interrupted at stepdown to avoid the hang.
See this and this comment on BF-29457 for more information and an example of this happening.