Thanks very much for explaining why the remainder is integral to how your algorithm currently works. I accept that it’s too much work for you to change if I’m the only user who wants this feature.
I think I can develop a solution for my own use in which I schedule a script to run at the end of a rain delay that resets the “starting in” date of all the programs.
(FYI, the remainder approach is not universal; the Blue Spray controller I used before Open Sprinkler does allow you to set a program to start on an arbitrary date. But it has other shortcomings that make me happy to have switched to Open Sprinkler.)