Vielleicht eine dumme Antwort. (Wenn ja vergiß es einfach)
Unter umständen erstellst du irgendwo einen Deadlock schon mal mit TThread.Queue versucht an der stelle wo dein Problem auftritt?
Zitat:
Queue bewirkt, dass der in AMethod festgelegte Aufruf im Haupt-Thread asynchron ausgeführt wird, und verhindert somit Multithread-Konflikte.
Ich hatte zumindest ein ähnliches Problem in meiner TAudioVolume Componente.