Вы можете использовать события Quartz и NSTimer. Каждый раз, когда загорается одно из ваших событий, отложите таймер, установив дату его запуска. Когда таймер срабатывает, пользователь бездействует.
Я не уверен, что отводы событий Quartz открыты для Python. API рисования есть, но я не уверен насчет событий.