NVM, feels like an XY problem:
Relooking at your GIF you just need to rotate the camera towards a target position, you can just use CFrame from axis angles for that.
local target = workspace.Rig.Head
local function AngleBetween(vectorA, vectorB)
return math.acos(math.clamp(vectorA:Dot(vectorB), -1, 1))
end
local camera = workspace.CurrentCamera
while true do
local dt = task.wait()
local currentLookVector = camera.CFrame.LookVector
local targetLookVector = (target.Position-camera.CFrame.Position).Unit
local angleTowardsTarget = AngleBetween(currentLookVector, targetLookVector)
local rotationAngleTowardsTarget = math.min(angleTowardsTarget, dt*1) --Rotate 1 radian per second towards target, or the minimum distance to complete goal (prevent overshoot)
local axis = currentLookVector:Cross(targetLookVector)
camera.CFrame = CFrame.fromAxisAngle(axis, rotationAngleTowardsTarget)*camera.CFrame
end