One thing I forgot to mention… I use TwoBoneIK instead of FABRIK. I once used FABRIK and I noticed that the sight wouldn’t align correclty until I increased the Precision in the node… or the Max Interactions, I don’t remember exactly… I also don’t remember the value I used, but it was higher then what you’re using on your pictures… just increase them and see if you see a difference.
Regarding the rotation of the hand bone, I see you’re setting it through the CurrentHandAimRotation variable, what I wanted to really tell you is that somewhere in the calculation of this variable you must take into account the relative rotation between hand and sight. Maybe you are, I only say this to be on the safe side, because I can’t see it in the pics. Another thing (just to be on the safe side) is that, for the purpose of checking alignment only, it would be ideal to turn off the swaying effect you mentioned you put in this variable through C++ (maybe you already are).