Обработать все события мыши, а "мышь не двигается" - это отсутствие событий. Это еще хуже, но вариант. А, вообще, насколько я понимаю, все эти проверки в любом случае происходят, и события вызываются, просто нет обработчиков. Так что, думаю, вариант с таймерами и mousemove вполне себе подходит.