The crashing thread might hold a lock in the memory allocator - which could either self deadlock when saving the stack trace (which certainly seems to do memory allocation and thus isn't a-signal safe), or could deadlock with the crash reporting thread which definitely allocates memory all over.
I also quite doubt that std::mutex, and even more so std::condition_variable are guaranteed to be signal safe.