@James: the situation is quite different. The IO pins are toggeled within the 2 MHz-ISR which shoud - that's my understanding at least - run stable in every case.
It's celar for me I can't get a stable frequency when the GPIO pin is toggeled within my main loop, therefore it is not done there but in ISR.
In applications main loop I'm reading a GPIO pin only which causes the DMTimer to become instable (writing some other GPIO outputs does not have this influence).