Add an option that makes it possible to ensure that the last point is exactly for Tmax; make sure that we never exceed Tmax

ok, make that a `// NOTE(phl)` then. The way the loop is now written it's less obvious that `δt` is just that, since it's no longer with the other compensated summations and gets declared outside the loop.
Switching back to a `while` loop and putting all the compensated summations together is conceptually clearer I think (the only reason while we need that persistent `δt` is because we increment in the `for`.