The constructor of CollectionShardingRuntime moves the namespace variable, but then uses it to initialise the state change mutex.
This means the state change mutex for all collections have the same identifier, which is bad at least for reporting purposes, but also potentially could lead to deadlocks (although it is not a problem currently).