The static variable _appenderMapMutex (contained in Appender.cpp) is being destroyed before the static instance of HierarchyMaintainer at program shutdown.
When the instance of HierarchyMaintainer is destructed it causes _removeAppender (in ~Appender) to be called. This causes an access violation when it tries to lock _appenderMapMutex (since _appenderMapMutex was destructed before HierarchyMaintainer).