Hi,
ok, success

can you try this action o the Ecosystem: ClampRotation
you add that after the Lookat action ( lookat does it works, and then this action will constraint, so the order is important).
I made this as a separation action, because it has a lot of usage, not just for look at.
I also let you define the default local rotation, otherwise the action takes the current rotation as the default rotation to base its clamp and for the lookat, it would not work, as look at executes first, so the clamp would be around the newly rotated object, and that's wrong. you can modify the default rotation in real time, clamping will adjust

and if you want to constraint on all three axis, then have 3 of these actions one for each axis.
Let me know how it goes. If all is good, I'll wrapp it up with a nice editor debug lines to see what's going on in the scene view.
Bye,
Jean