Wie wäre es mit Events? Also CreateEvent usw. als
API-Funktion bzw. TEvent in Delphi, wenn die Delphiversion neu genug ist.
Auf die kannst du auch warten usw., also genau was du möchtest.
Wenn du WaitForMultipleObjects verwendest, kannst du auch gleichzeitig auf ein Event zum Beenden des Threads warten.