(Sorry if this was already discussed, it looks pretty obvious, but I could not find anything.)
There have been a couple timetravel extensions done, each with their own limitations. I don’t believe a perfect implementation could be done without reading the functionality to core (which would be new functionality given all the changes.) I’d say start with the extensions and go from there.