State machine comparision

MikeLittle:
There is no need to go to a state if there is nothing in the serial buffer to process.

If that is true then your approach will work. I had not considered designing a program like that. I prefer to receive the data independently of other activities as that allows me to view the received data as part of the debugging process.

...R