The shardCollection implementation on the primary shard contains at least one task, which performs collection scan while under the critical section, namely checkShardingIndex. This can cause a significant period of unavailability for a large collection.
This ticket is to inspect all the work which is performed under the critical section of shardCollection and ensure that it is held for the minimum time possible.