In Deinem Test kommt das Programm nie dazu, die zurückgestellten Aufgaben abzuarbeiten. Es hängt sich letztlich auf und lässt sich nicht beenden.
Mein Test zeigt (besser), dass die zurückgestellten Logs später noch abgearbeitet werden (nämlich wenn keine weiteren ProcessMessages mehr dazwischen funken).
Ist ja nicht weiter wichtig, aber führt vielleicht schneller zur Erleuchtung bei denjenigen, die sich mal damit auseinander setzen wollen.
hmm - das Problem ist - der Ansatz ist falsch...
Ich logge per Thread in einen Queue, damit mein Hauptprogramm durch Threading angehalten wird...
Aus dieser Queue schreibe ich dann aus einem Thread per Queue nicht syncronize auf die UI.