Класс Timer очень спокоен за то, что поднял событие Tick.Внутренне, внутри кода Windows, когда таймер должен быть установлен, он только устанавливает внутренний флаг, что-то вроде «должен доставить WM_TIMER».На самом деле этого не происходит до тех пор, пока в цикле сообщений не будет сделано ничего важного.Любое сообщение получает более высокий приоритет, чем WM_TIMER.
Когда цикл сообщений Windows Forms вызывает GetMessage (), функция проверяет, нужно ли что-либо возвращать.Если ответ «ничего» и установлен флаг, он предоставляет WM_TIMER.И вы получите событие Tick.
Пара следствий этого: вы можете никогда использовать событие Tick для отслеживания времени.Это неизбежно отстанет.Вы можете никогда получить событие Tick дважды подряд, оно не наверстает упущенное.Но имеет отношение к вашему вопросу: цикл сообщений не прокачивается, когда машина переходит в режим ожидания, ничего особенного не происходит.