Oh, you've faked it really well!

It really looks like the guy is only turning his upper body up/down but actually the whole model is turning. Well, yeah, you can't see his legs unless you aim very low. Anyway, well done.
When my scripted weapons were shooting up when aiming down and vice versa I did a few things:
Initial (when things went wrong):
Pawn.ini -> actorrotation = 0 180 0
script -> self.ideal_pitch = self.camera_pitch; and self.ideal_yaw = self.player_yaw;
3D model -> just like you'd expect it to be, facing forward
Fixed:
Pawn.ini -> actorrotation = 0 0 0
script -> self.ideal_pitch = self.camera_pitch; and self.ideal_yaw = self.player_yaw; (no changes)
3D model -> Now here's the trick; Rotate the model 180 degrees in the modeling application to make up for the change in pawn.ini. So now your model is facing the back but the actorrotation in Pawn.ini makes it correct again. Now, if you start thinking about it, how the changes affect the way the pawn rotates and stuff, it makes sense. I'm not gonna even try to explain why but it really does.

And for me it fixed the problem.

Pain is only psychological.