How far through this span now is, from 0 to 1.
now
double progress(Duration now) => duration == Duration.zero ? 1 : ((now - at).inMicroseconds / duration.inMicroseconds).clamp(0, 1);