Die Differenz zwischen VOR "application.ProcessMessages;" und NACH sollte nicht grösser als 1 - 2 msec sein.
Leg dir einen Timer mit Sleep(1000) auf die Form und ich wette deine Aussage stimmt nicht.
Application.ProcessMessages hat eben gerade das "Problem", dass man nicht weiß was darin alles für Messages verarbeitet werden und Wieviele, also kann auch niemand mit Sicherheit sagen wie lange es dauert und was es für Auswirkungen hat.
z.B. kann dadurch ein Button doppelt geklickt werden und im zweiten durchgang, mitten innerhalb des ersten Aufrufs, kann sonstwas schief gehn, wenn in dem Button auf globale Variablen zugegriffen wird.