Measuring Arduino's FT232 throughput rate ?

I would be lying if I said I read your whole article, but as soon as you said 2000000 baud I thought of a limitation with the FT232RL. It has an internal buffer of 256 bytes for receive and 128 bytes for transmit. The way USB works is every 1ms the PC asks the FT232RL if it has any data for it -- the FT232 can never initiate a transmission on its own but must wait for this request.

So how many bytes can queue up in its buffer in 1 ms? At 2e6 bits/second that's 2e5 bytes per second or 2e2=200 bytes per 1ms interval. So you might be running up against the 128 byte internal buffer limit for transmission.

--
The Gadget Shield: accelerometer, RGB LED, IR transmit/receive, light sensor, potentiometers, pushbuttons