Hat ein Consolenprogramm überhaupt einen UI-Thread?
In der Regel nicht. Dafür gibt es eine Abfrage in
TApplication.CreateHandle auf
IsConsole.
Wenn es lediglich um die Ausgabe geht, würde sich ein separates Form anbieten in dem die Ausgabe erfolgt. Das wäre dann wenigstens konsistent.
Solche Misch-Applikationen haben schon immer für Ärger gesorgt, da sie von Windows überhaupt nicht unterstützt werden (was natürlich manche Leute nicht davon abhält es trotzdem zu machen).