По сути, вам нужна переменная состояния конечного автомата, к которой можно получить доступ как из процедуры, которая инициализирует таймер, так и из цели таймера.
Установите переменную состояния, чтобы первый вызов задачи таймера мог перезапустить таймер, но в этом вызове также установите эту переменную состояния, чтобы последующие вызовы не перезапускались.
Обратите внимание, что этот тип переменной состояния можно использовать для любого числа повторений задач таймера, просто уменьшая его.
Конечные автоматы во многом похожи на то, как работают все (синхронные) цифровые микросхемы и логика.