P_MoveChaseCamera already tried to do this, but these additional checks in P_TryCameraMove and P_CameraThinker are needed to make it work.
P_MoveChaseCamera
P_TryCameraMove
P_CameraThinker