Cursor location in World Space, LookAt rotation and Gimble lock.

Sure. I assume the Mouse Movement event is called on click?

If you create Axis events for the mouse - it pretty much works OnTick without being an OnTick function.

Mouse constantly moves.
As such, you can get the X or Y direction from the respective Axis value.

Which brings to yet another way to implement it - simply add the axis value scaled (multiply) but a custom speed variable into the rotation.

Personally, I branch at the start and if axis is == 0 I stop the execution. But you may actually want to re-apply whatever the latest value was instead, don’t know.
It would make you pan back to the center when you stop moving the mouse.

Maybe it’s closer to what you want that way.