If you’re lucky, then some visible problem (like a concurrency issue) will result from this sort of problem.
If you’re really lucky, it will repro somewhat consistently.
The main problem here is that, while the assumption under STA is that apartment implies thread, we cannot assert the consequent and assume that thread implies apartment. So, any asynchronous entry into the thread has to somehow ensure the correct COM context before making calls into apartment-affine objects.
Luckily, COM provides an API for doing just this. One solution to the problem described above, then, is:
Q: But Marc, this is crazy, no one calls this API today. A: You’re right.