Na ja, was soll die Funktion schon machen, wenn eine Message vorliegt?
Sie wird sie halt abarbeiten und dabei sicherlich nicht ständig auf die Uhr schauen.
Eventuell sollte man bei Milliseconds < 50 einfach den Aufruf von MsgWaitForMultipleObjects weglassen dann würde es immerhin zeitlich bis runter zu 10ms passen.
Grüße,
Uwe