I utilize various GPS spedometer apps, currently using one called Speedometer GPS as it keeps handy tabs on distance and top speed. It's reading the same as speedview did, same as DigiHUD does. Just went for a ride and was getting about 3400 RPM for 20mph and about 5300 RPM for 30-32 mph. This aligns perfectly with the calculations I'm using for engine rpm vs wheel size vs rear sprocket vs drive sprocket. I don't see how my math that I posted earlier could possibly be as wrong as is stated. If someone in the Phoenix valley area wants to lend me a good helmet and a good riding jacket I'll see exactly what RPM the engine is turning at 50mph but extrapolating from the data I've gathered, that is a pointless endeavor other than to say "I went 50 on a cheap walmart bicycle"
As for how I'm doing my math, I'm taking engine RPM divided by 4.15 (the approx reduction from crank to output gear) and plugging in the other known variables into here and the theoretical numbers are aligning perfectly with real world observations. I will correct my prior statement of 44 mph at 6400 rpm, it was 40 mph at that rpm.
http://www.diygokarts.com/speed-calculator.html
EDIT: jpilot's is showing me the exact same results.