Лучше опираться на время, и считать разницу между текущей датой и датой старта таймера, имхо. Так надёжнее в ряде случаев. Ну и интервал можно по чаще, чтобы секунды в глазах у юзера не прыгали.
В общем, вот так работает, но таймер не очищается и при повторном нажатии на "Повторить" после окончания таймера начинается психодел с таймером)