Suspended ist ohnehin finde ich keine wirklich schöne Variante. Entweder der Thread bekommt alle Daten gleich im Konstruktor oder wartet vor der Ausführung auf ein Signal. Letzteres kann man dann gleich zur mehrfachen Benutzung des gleichen Threads verwenden.
Wenn man aber z.B. Events wie OnTerminate usw. setzen will, bringt einem ein bereits gestarteter Thread nichts und was ist jetzt der Unterschied, ob ich ein "Signal" schicke oder den Thread Suspended erstelle und über die vorhandene Funktion starte?