Hmm – yeah – actually the more I think about this the less I feel like it solves the problem.
With a large number of relays, it basically becomes impossible to know for certain that you have the latest version of an event. Event with your timestamps. With websockets, you're always going to have to cut off the search (or the wait) for new events matching your filters at some point...
How many relays currently do a good job of signaling when they've exhausted their search and have no more data for you?