Вроде того. У разных задач может быть разный период обнаружения
отказа. В вашем примере время обнаружения отказа внешней системой будет 50 циклов таймера плюс время обнаружения сбоя сигнала сердцебиения.
В подобных случаях, я делаю переменную типа int, чтобы были обрабатывались и отрицательные значения. И сравнение делаю не по неравенству нулём, как у вас, а по наличию положительного значения.
Например, if(flag>0){}.
Сравнение с нулём опасно тем, что срабатывает лишь на одну нештатную комбинацию. Лишний декремент и всё - сработает аж через следующее переполнение.