Вот "эта фигня" уже может делать что угодно: проверять зажата ли клавиша, ловить события ОС (сама операционка отсылает приложениям кучу событий) и так далее.
ну получается же, что программа постоянна такая: "ну может сейчас? нет, ай, ладно, а вот если сейчас, нет, опять, опа, а вот это было нажатие, я ждал".
Например, есть SDL. Этот SDL держит состояние всех кнопок. Просто массив булеанов на условно 200 значений. Он ловит события winapi (или signals), и изменяет состояние той кнопки, к которой было адресовано событие. Попутно может дёрнуть методы всех подписанных на это событие ивент-листенеров.
типа, сберегающий режим работает на количество процессов? когда он выключен, у меня ВСЕ приложения ждут событий, а если он включен, то только 2 и за счет этого он держит заряд дольше или как?
Но в целом - да, оно регулярно ловит кучу разных событий просто ожидая: "Какое-нибудь событие пришло? Да? Запускаем все какашки. А сейчас пришло? Нет? Спим".
В ОС слишком много разных событий, и куча из них — программные, т.е. в юзерспейсе, его всё равно надо гонять чтобы ловить события сгенерированные прогами-сервисами-демонами.