Could my solution for rotating the mesh around a target axis be similar to using mesh.lookAt(mouse3D)? It seems like the mesh should spin continuously around the target axis. However, I'm not entirely sure if using mesh.quaternion.multiplySelf is the right approach - as I encounter difficulties from this point onwards.
var vector = new THREE.Vector3(mouse2D.y, -mouse2D.x, 0);//.normalize();
var quaternion = new THREE.Quaternion().setFromEuler(vector);
var newQuaternion = new THREE.Quaternion();
THREE.Quaternion.slerp(mesh.quaternion, quaternion, newQuaternion, 0.07);
mesh.quaternion = newQuaternion;
// mesh.quaternion.multiplySelf(newQuaternion);
mesh.quaternion.normalize();
Check out the code on jsfiddle here: http://jsfiddle.net/DLta8/