I experimented with disabling the ShardLocal, and it failed because it made the ShardingCatalogManager to make a remote call with local read concern. The code in head here.
Then it hits the invariant because ShardRemote requires majority read concern here. It's just another confirmation that the ShardingCatalogManager is designed to make all calls locally, we should not mix.
Another change is to convert the `PeriodicShardedIndexConsistencyChecker::_launchShardedIndexConsistencyChecker()` to do explicit local read.