When the AsyncResultsMerger is blocked waiting on results from remote shards, we sometimes wait for it to finish via this overload of TaskExecutor::waitForEvent() instead of this one. The one that does not have an OperationContext cannot be interrupted by another thread, so will block until the event is signaled.
We should switch all the call sites to use the version that takes an OperationContext, to ensure they can be interrupted and quickly cleaned up.