напишу общий комментарий к выложенным примерам. считаю, что для удобства работы функционал задания временых отсчётов всегда должен выражаться в физических величинах. довольно часто это миллисекунды.
пересчёт из миллисекунд в тики должен быть абстрагирован внутрях таймерного функционала.
потому что если у тебя десяток таймеров, и ты потом делаешь системный тик не 100, а 200 Hz, то нихрена менять не придётся вообще. всё просто заработает