Ist die Anwendung ausgelastet, dann hat sie auch keine Zeit ein Warte-Fenster/Objekt anzuzeigen.
Der Cursor und dessen Animation wird von Windows gesteuert und hängt nicht, wenn dein Programm hängt.
Ausgelastet = es arbeitet was und lässt der
VCL keine Chance andere Messages zu verarbeiten.
Ausgelastet im Sinne von "Arbeitet sehr viel, aber lässt ab und an auch Messages durch" ... könnte man die CPU-Auslastung des Hauptthreads oder der ganzen Anwendung bestimmen
und jenachdem wie "stark" es hängt, könnte der Hauptthread eventuell doch die Anzeige des "Ich arbeite" übernehmen.
Hängt es aber komplett, also
VCL/
Progamm/MainThread:
Da könnte könnte man ein
NonVCL-Fenster in einem Thread erstellen+anzeigen oder als "externe" EXE starten+anzeigen.
Ob die Anwendung hängt, kann man erkennen, indem man vom Thread aus regelmäßig dem MainThread eine Message schickt und schaut ob und wann sie zuletzt verarbeitet wurde.