Ok, I'll move onto something else not CTC related.
But, is this DMA problem likely to cause issues elsewhere that I should be aware of, or is it limited to CTC?
I've no idea. From what I can tell, it's just the timers due to the way DMA clocks up used TStates. I have change the DMA a little to be more accurate, though it'll never be perfect - but that might help.