Character Doesn't Fully Rotate to Desired Angle, Always Roughly 2/3 of Desired Direction

I’m new to UE4 and have made a good deal of progress understanding vectors and rotators in the last few days, but I’m scratching my head over why the character won’t rotate fully. I’ve put together rotators to get the relative angle of the character to the camera and inverted the rotation so that, for example, when the character is facing 90 degrees to the right of the camera and forward is input on the stick (0 degrees), a -90 result will be sent to the blendspace so that the character turns -90 degrees to their left and faces 0 degrees, where the stick input was. This always seems to work, except that the character won’t turn the entire way. The only time it animates correctly and in the right direction is if I take away the functionality that makes the stick input relative to the camera (by feeding the Atan2 node directly into the desired rotation variable). I’ve got the outputs of the variables confirmed with print strings, so could it be another setting I don’t know about yet? Is it possible the rotation of the character itself is changing the angle being input to the blendspace (I’m using root motion, so I thought it would fire off and lock the character the initial trajectory)? Should I try freezing the variable for the duration of the start walk animation? Anyone got any ideas?

Still having this issue, but I removed the control rotator nodes at the top of the blueprint and fed values of 1 into the respective world direction values for the movement input nodes. They are overridden by other settings, but for some reason the character won’t initiate any movement without having some value in them.

So the best thing I could think to do was to capture the value of Desired Rotation for a fraction of a second at its early value (while the velocity of the character is between 1 and 50) and create a new variable that is only used during idle to start. It seems to have worked, but with a slight margin of error that I can’t tell if it’s the program or the way I’m using the sticks. The value resets itself every time the same conditions exist and uses the new correct value. I still can’t help but think there should be a better solution.