Sounds cool! A couple ideas:
– That snapping is very similar to how my dynamic re-calibration works, except I do a more continuous weighting where I store a grid of offsets for different areas of the screen and use a weighted combination of the offsets to calculate the offset for a given point. See https://github.com/trishume/PolyMouse/blob/master/src/dlcTransformer.cpp
– You could add a hotkey to toggle in to a mode like my system for dragging and double clicking where the mouse is constantly moving based on your head and eyes and you use your normal hotkey for clicking and dragging. Or even get a foot pedal.
– When jumping the gaze to the mouse, I found it made it much easier to figure out where the cursor had gone if I animated the mouse (still very quickly) to the place instead of teleporting.
– My system also only jumps the mouse to your gaze when you start moving your head, that way it isn’t distracting if you leave the system active.