Klar gibt es einen Deadlock. Der Hauptthread (
GUI-Thread) wartet mit WaitForMultipleObjects auf das Ende deines Worker-Threads, und der Worker-Thread wartet darauf, dass der Hauptthread die Synchronize-Message abarbeitet, was aber nie passiert, weil dazu ja erst der Worker-Thread terminieren muss.