Ich glaube nicht, dass du eine bessere Möglichkeit finden wirst, und bzgl. TerminateThread stimme ich dir zu. Das einzige was mir einfallen würde, um den zusätzlichen Code ein bisschen zu beschränken wäre, diesen in eine Extra-Methode auszulagern
Delphi-Quellcode:
function TMyThread.ShouldTerminate: boolean;
...
Aber darauf bist du vermutlich schon selbst gekommen.