1. зачем тебе циклы, если тебе просто надо зашедулить события в будущем? 2. что-то мне подсказывает, что Thread.Sleep это не то же самое что await и реально подвесит целый тред. Здесь могу ошибаться.
Ну если вариант сменить либу не подходит, то надо запомнить текущую позицию по времени, а затем пересоздать объект и сдвинуть время как нажмут "продолжить"