On a related note, I don't think I can improve the driver much further without proper waitstate support in the core. That's mnemodemo 1, part 2 in MESS (with some wip changes):
Talking about waitstates and memory contention, did you know this article?
It'd be interesting to replicate this technique on the different ZX Spectrum clones to determine whether they have a contended memory scheme or not.