I already sent a PM to Firoball to discuss dead reckoning in depth because we got offtopic too fast.
In my opinion there are two possible solutions. One is to move the players client-side all the time. (It is diffrent from 'moved by the server' because you...you still have two hops , but only when sending the input wich is also only one time , when you move the ent localy , you'll update it frequently to the server and again to the other clients.) The other is to move the ents localy only until a regular update comes (thru a forced update) , wich will remove the 'build-in' lag of the frequency of updating.
Also , for the latency , it could be a 'many servers' system , managing one world and when registering a player assigning him to the lowest latency server.(The servers will communicate with a .dll file for sync). The other solution to the latency problem is to have again a .dll file , but this time with a peer-to-peer connection. When an ent moves , the client that owns the ent sends to all other nearby clients the input , and it will be ignored after a regular update comes. Until then , the ent will be moved localy according to the input given directly by the interracting client. If the latency between the two clients is lower than thru the server , it'll lower the time needed for the packets
It sounds not only complicated,hard,but in my opinion possible.


Extensive Multiplayer tutorial:
http://mesetts.com/index.php?page=201