In this test I'm only sending one character. And it waits 8ms for the first step. I know that it takes 20ms for the whole loop to execute. That is not the problem
Also, people are reporting response rate in uS for the same code. For example: Example of interrupt-based version of reading serial port - #22 by nickgammon