Du könntest auch das starten komplett automatisch machen lassen: Einfach dem ursprünglichen Constructor false übergeben. Dein Konstruktor wird ja trotzdem vollständig ausgeführt, bevor (im AfterConstruction()) der Thread tatsächlich gestartet wird.
Nach dieser Antwort:
http://stackoverflow.com/a/6762791 ist es schlichtweg ein Fehler, Start() im Konstruktor eines Threads aufzurufen.