I think I may have a solution to this which I’ve implemented by accident. I use Sunrise and Sunset events to drive time of day switches (see this post). As part of this solution I have a system started rule which accesses the state of a couple of Astro Items. When ever that rule reloads I get a log statement saying that Astro has recreated the timer to recalculate the times for midnight and I believe it also recalculates the new time for the current day at that time.
I also use persistence so if rrd4j can persist date times that is also working for me as well.
The end story is that I have done something in my environment which has somehow inadvertently prevented this problem for me.