Но это звучит не очень, хотелось бы очищать таймауты сразу, когда известно, что время было изменено
Если я ничего не путаю то все хотелки есть в любом из планировщиков задач к примеру cron. Но, имхо, проще и дешевле, перед запуском задачи проверить ее актуальность и самозавершиться, чем городить еще один планировщик задач.