Du wirst nie, nie eine Pause von 1 ms Sekunde hinbekommen, wenn du Sleep o.ä. benutzt
Der Grund ist einfach, dass Sleep die Zeitscheibe deines Prozesses sofort abgibt, und dir dann garantiert, dass du nach mindestens der angeebenen Zeitspanne wieder dran kommst.
Zeitscheiben sind üblicherweise ein paar Millisekunden groß, so dass bereits ein Sleep(0) eine Verzögerung von über 20 ms geben sollte
Das gleiche Phänomen kann man beim Timer beobachten: Wenn man ihn auf 0 stellt, kommt das Event trotzdem nur alle 20ms
Bei hoher Systemauslastung sind halt andere Prozesse da, die auch Zeit wollen, und so verlängert sich die Zeit entsprechend ...