Hey, i am working with a similar problem. I came across an easy solution for you to use that almost works for me.
I created 3 parent cubes, used smooth look at for each one, one for center, left, and right. this will make it have a max turn degree.
Great for use with an analog control stick for look left and right.
I was looking for a fix to keep the object that was rotating to look at the other cubes from rotating on any axes except Y. I cant use a ridged body as it interferes with other scripts im using. I tried to always update the rotation of X, and Z, to set to 0, but got an error for that. Still looking for a solution, but this will work well for you if you make the head that rotates a child of a cube that is set to look at other cubes that are parented to it. Remember the rotating cube sits as a child of the target look at cubes, and they are the child of the object that controls the characters movement.