The concurrency control of the LogicalTimeValidator with respect to the KeyManager is not fully correct. Specifically, the _mutexKeyManager seems to serve more the purpose of a barrier than a mutex. Most likely, because the KeyManager is self-synchronizing we don't need the _mutexKeyManager.
As implemented currently, a deadlock can occur between LogicalTimeValidator::shutDown() and LogicalTimeValidator::_getKeyManagerCopy() if a periodic refresh occurs during shutdown.