У меня рассуждения были такие: раз нас не интересует разброс в несколько мс (а если критично, то уже подход другой), то и пусть это будет в одном месте. Чем в каждой задаче каждый раз проверять на каждый таймер на N-ое количество тактов дольше значение счетчиков. А так: считали флаг конкретно таймера, если время не вышло, выход или выполнение другого кода (у меня выход функции проверки таймера флаг T). Вышло, выполнение другого кода.