The find code path currently calls CollectionShardingState::get at least 4 times for preparing a single query.
This causes contention on ShardingState::_mutex, which eventually gets called by that function.
Through some code reshuffling we should be able to remove two of these calls.