Was mir beim ersten Drüberschauen aufgefallen ist:
Du benutzt Postmessage d.h. es wird nicht gewartet bis die Nachrichten verarbeitet sind. Kann es dadurch zu Problemen kommen weil der
VCL-Thread und dein
Query-Thread gleichzeitig auf Sachen zugreifen?
Du rufst häufig Terminate auf, wertest aber Terminated nicht aus. Terminate beendet den Thread nicht sofort!