I desync quite a lot with the input plugin method. Kaillera seems to work better, but has more lag. There's no perfect solution, since avoiding desync either means forcing people to run with their inputs synchronized (more latency) or to send periodic state updates (which are huge, and fail if someone can't go above 100% performance). Note: I use 1964 for Kaillera.
Video streaming might be the way to go, from a development perspective.