next_multiple ~base ~after ~interval returns the smallest time of the form:
time = base + k * interval
where k >= 0 and time > after. It is an error if interval <= 0.
Supplying ~can_equal_after:true allows the result to satisfy time >= after.
Overflows silently.