Thanks for the responses!
According to top, when running Firefly my CPU performance jumps from 12% without my hack, to 57% with my hack. Ouch!
Thinking about it, the timer really doesn't need to be triggered every cycle. Just been increasing the timeout (number of cycles) value to see how it effects CPU:-
1 cycle = 57% CPU
8 cycles = 19% CPU
16 cycles = 15% CPU
32 cycles = 13% CPU
224 cycles = 12% CPU
Might as well go with 224, at least it is clear that the screen is being put together line-by-line. Just tried the games out and they all look/play just as good.
I don't think my changes can be applied as-is though as I think I may have broken a few Russian clones. See the diff above, in the mame/video/spectrum.cpp file I commented out calls to spectrum_UpdateScreenBitmap() from the screen_vblank_spectrum() and screen_update_spectrum() functions. I reckon/guess a few of the clones rely on these calls. I will try and get my head around which ones will need attention.