I suppose my ideal transmission rate would start at a user-chosen minimum value and immediately spike up to the maximum (25Hz is fine) when control inputs start. This is pretty much what happens now, except I'd set the idle rate maybe at 10Hz in my particular application.
I'd also probably make the transmission rate decay slowly decay back to the minimum (over a few seconds, maybe with a user-selectable rate), rather than dropping back abruptly.
The user-chosen minimum rate would allow the user to balance the absolute worst-case latency with the available MAVLink command bandwidth. The slow decay would keep the controller responsive during short pauses in user input.
I also still need to diagnose the longer-term dropouts I'm seeing. If that's because of other tasks in QGroundControl taking priority over manual control commands, that could also use some improvement, but I'm not sure yet that the issue doesn't lie in MAVProxy on my Raspberry Pi or other network issues.