Sorry, wenn ich mal Fragen muss:
Hast du nichts Sinnvolleres / Produktiveres zu tun ?
Ansonsten: das Event Application.OnIdle hilft dir nicht weiter.
Auch Sleep u.s.w. treffen nicht den Kern.
Du musst in
Application.OnMessage auf alle Maus- und Keyboardmessages reagieren.
Und zwar speicherst du den Zeitpunkt der letzten Message in einer globalen Variablen.
In der Laufschriftfunktion wird geprüft, ob dieser Zeitunkt mehr als 20s in der Vergangenheit liegt.