Hey I know this is an old post now but I solved this much easier than this.
I used orbit controls and I simply made the target slightly in front of the camera.
so postion of the camera in my case was:
camera.position.x = 6;
camera.position.y = 1.25;
camera.position.z = 2.5;
the position of the target (the centre point that orbit controls looked at) was:
controls.target.set( 6.6, 1.25, 2.5 );
Then just disable pan and limit the view angle to whatever you like and you get the desired affect without any skewed rotation like in that example.