So I believe I have found a bug that exist in the Leonardo. I did the same test on a Duemilanove Just to be sure and only the Leonardo is exhibiting this problem.
So the bug relates to the delayMicroseconds function. This function will default to a delay in milliseconds if used in a sketch that also uses external interrupts.
However if noInterrupts() is called or the external interrupts are removed the delayMicroseconds will work again and output in microseconds.
No sure what is making this happen hoping others could help. I will also be looking into the problem as well.