Klingt kompliziert, habs jetzt nicht komplett nachvollzogen was du machst ...
Ich würde einfach zwei Threads über Events steuerbar machen, so
in der Art, aber die Setter/Getter der Zugriffs-Properties noch sicherheitshalber in TCriticalSections verpacken.
Dann könntest du die Threads intern immer laufen lassen, und ja nach Guste über die Events stillegen oder freischalten.
Dann braucht man kein "Terminate" (nur am Programende, und keine globalen Variablen.
Rollo