Update...
2 Tage in der falschen Richtung gesucht.
Es liegt definitiv nicht an den Threads. Das funktioniert hervorragend. Der bewußte Thread macht eine Datenübernahme aus einer alten Datenbankstruktur in eine neue Struktur. Weil ich noch in der Entwicklung bin wird jeder Step gleich commited (damit ich kontrollieren kann). Später läuft das in einer Transaktion. Dies habe ich nun mal probiert. Dabei stellte sich heraus, das der Firebird mit seinen Commits der mehreren tausend Datensätze nicht hinterherkam. Deshalb beim Beenden die Verzögerung. Wenn man mit dem Beenden lange genug gewartet hat, ging es auch schnell. Wenn das alles in einer Transaktion abgearbeitet wird, braucht halt das Commit länger.
Das Beenden geht danach sofort.
Schön das wir darüber geredet haben...