Es gibt nur eine
VCL, welche sich um alle seine Fesnter, visuellen Komponenten und nebenbei auch noch alle anderen Messages an diese Fenster, bzw. den Hauptthread kümmert.
Wenn du eine blockierst, dann blockierst du alles.
ShowModal verarbeitet aber indern die Nachrichtenschleife (Application.ProgressMessages), weswegen andere Ereignisse, wie z.B. Timer noch laufen ... nur die Ereignisprozedur, in welcher das ShowModal aufgerufen wird, wird solange angehalten.
Auch eine Gauge sollte sich so ändern lassen.
Also wenn deine
COM-Schnittstelle so blockierend wirkt, dann sollte sie in einen Thread ausgelagert werden.