Just ran across this thread via a Google search and hoped this could be useful.
I'm currently developing an Arduino based robotics platform that needed to be controlled via Web Browser/USB Joysticks. I too found websockets unsatisfactory for any sort of real time control mechanism. Even socket.io provided poor performance, as it is all based upon the TCP protocol which is inherently "reliable". Usually it would function decently, but every second or two a few packets went missing and the entire link slowed to a crawl (similar to the 500ms delay as you mentioned).
In my case I only needed to make this work in Chrome, so I was able to get away with using the chrome.socket API:
developer.chrome.com/apps/app_network.html
Although you'd have to develop your game as a Chrome app, it would allow the creation of a game in the browser that uses UDP to communicate. I can confirm this works excellently for controlling remote control robots, so it should definitely work for gaming. Also for anyone else interested, the HTML5 Gamepad API is quite excellent as well:
html5rocks.com/en/tutorials/doodles/gamepad
The best part is that both the Gamepad API and UDP sockets are now supported out of the box for Chrome stable!
Hope this helps!