The brute-force approach is to force the parser to always pumpTokenizerIfPossible(ForceSynchronous) if the current page is capturing/replaying. I have tested this in a branch and it works.
Another approach is to use a ReplayableTimer inside HTMLParserScheduler. I haven't tried this yet.
Closing web replay-related bugs until we resume working on the feature again.