Couldn't you do it with transaction isolation levels? for example in Postgres "BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ;"
Inside the transaction you will see only changes made within the transaction.
Inside the transaction you will see only changes made within the transaction.
I think the stateless nature of time-travelling queries would map much better to the stateless nature of HTTP requests.