Task executors are allowed to refuse work and the .onCompletion() continuation won't run if the task executor has been shut down. This is especially problematic for the ReshardingCollectionCloner after the changes from
SERVER-54959 because the noCursorTimeout cursor will be permanently leaked on stepdown. We should instead be using the RecipientStateMachine::getInstanceCleanupExecutor() to run the .onCompletion() continuation.
ReshardingCollectionCloner::run() and ReshardingTxnCloner::run() should be changed to additionally accept the cleanup task executor and should return a SemiFuture<void> so the caller must explicitly do .thenRunOn(**executor) to chain any further continuations.