Only took me 5 years but I think I finally have the flow control problem in RakNet beat. It maintains a record of average low ping, and if your ping starts going up, it increases the amount of time between each datagram send. In testing it was as fast or slightly faster than TCP and maintains 0% packetloss.
I am also using Windows WaitForMultipleObjects by default. Previously, this gave very bad performance, adding 30-50 ms ping times. But apparently Windows XP does a better job with this, so my throughout is roughly equal. This should resolve the long standing problem of people bitching about reported 100% CPU utilization.