Wahrscheinlich kommt es bei Connect zu einer
Exception die du nicht abgefangen hast.
Exceptions innerhalb von Threads gehen sang & klanglos verloren, solange man nicht etwas dagegen tut.
Mein Tipp:
Erzeuge das TIdFTP-Objekt im Hauptthread, stelle im Hauptthread die Verbindung mit Connect her und übergebe dann das fertige Objekt deinem Thread.
Dadurch kannst du dir auch die Properties Host, Port, Username & Passwort sparen.