Couldn't you just create a mountable, invisible bot, mount it to the spectated player, mount the spectator to the bot, set the max camera movement of the player's camera to 0, and put in place a short script that always checks/corrects the invisi-bot's rotation in relation to the spectated player's eye node (forcing it to not rotate)?