Здесь ошибка
Duration duration = controller.duration;
Продолжительность всегда 1 минута, это не связано с прогрессом. Используйте это вместо этого, чтобы показать увеличивающийся таймер (начиная с 0)
Duration duration = controller.lastElapsedDuration;
И используйте это, чтобы реализовать то же самое, но с обратным отсчетом (начиная с 1 минуты)
Duration duration = controller.duration - controller.lastElapsedDuration;