Test with thread sanitizer
Recent CI fails because of data races under load showed that there were still many tests not behaving well in regards to thread safety (for example at merge of !5 (merged) and !6 (merged)) and potentially there are many more.
While one can fix them one by one whenever a pipeline fails it would be better to check with a thread sanitizer. This would also prevent new data races from creeping in. A separate build is then needed because the thread sanitizer can't be used together with the others we currently employ.
The issue is: I tried this already and the method to check-wait with a signal spy on a signal being emitted seems to be inherently racy. It's always a read after write until the read is successful. I'm unsure how to solve that. Maybe a helper class with a mutex?