One cheap way of reducing lag where fast mouse movements are done, would be to render a much wider view, send the entire image to the client and then client uses the appropriate segment based on the latest mouse position.
At downvoter: Why would you downvote a suggestion that is on topic?