Я бы определенно не создавал новую тему каждый раз, когда пользователь нажимал кнопку. Если они нажимают на нее несколько сотен раз, ваше приложение может умереть или замедлиться. Когда они нажимают кнопку, вы знаете, во сколько истекает срок действия вашего таймера. Поэтому лучше создать объект Timer и поместить его в упорядоченную очередь (упорядоченную от самого раннего до самого последнего срока действия), а затем создать единый поток, отслеживающий эту очередь, отсекая таймеры по мере их истечения.
Ваш поток TimerWatcher может затем пробуждаться каждые несколько миллисекунд или, что лучше, ждать, пока он не узнает, что истекает первый таймер, а затем достигнуть пика следующего таймера и дождаться истечения следующего. Всякий раз, когда вы добавляете новый таймер, вы также можете разбудить свой TimerWatcher и проверить, что новый таймер не истек до того, что он не истекает раньше, чем тот, который вы уже ждали.