Camera not staying still when told to

How would I stop the camera from moving around and stay focused during my cutscene?

Client Script

	local humanoid = player.Character:FindFirstChildOfClass("Humanoid")
	local head = player.Character:FindFirstChild("Head")

	if not humanoid or not head then
		return
	end

	local FREEZE_ACTION = "freezeMovement"

	ContextActionService:BindAction(FREEZE_ACTION, function()
		return Enum.ContextActionResult.Sink
	end, false, unpack(Enum.PlayerActions:GetEnumItems()))

	--Stop camera shake
	cameraShake.cameraJanitor:Cleanup()

	task.wait()

	camera.CameraType = Enum.CameraType.Scriptable
	camera.CameraSubject = head

	local changeCFrame = nil
	local primary = player.Character.PrimaryPart

	--Makes sure that their camera isn't weirdly positioned during cutscene
	if (primary.Position.Y - jason.PrimaryPart.Position.Y) > 2 then
		if primary.Position.Y > jason.PrimaryPart.Position.Y then
			changeCFrame = "PlayerHigher"
		else
			changeCFrame = "KillerHigher"
		end
	end

	local _connection

	_connection = RunService.RenderStepped:Connect(function()
		if head then
			if changeCFrame == "PlayerHigher" then
				camera.CFrame = head.CFrame * CFrame.new(0, -1, 0)
			elseif changeCFrame == "KillerHigher" then
				camera.CFrame = head.CFrame * CFrame.new(0, 1, 0)
			else
				camera.CFrame = head.CFrame
			end
		end
	end)

	for _, v in pairs(player.Character:GetDescendants()) do
		if v:IsA("BasePart") then
			v.Transparency = 1
		end
	end

	if animation == "cutscene" then
		local anim: AnimationTrack =
			humanoid.Animator:LoadAnimation(game.ReplicatedStorage.Storage["Victim_Execution_Firstperson"])
		anim.Priority = Enum.AnimationPriority.Core
		anim.Looped = false

		anim:Play()
		anim.Ended:Wait()
	elseif string.find(animation, "Attack") then
		task.wait(tonumber(string.split(animation, "/")[2]))
	end

	ContextActionService:UnbindAction(FREEZE_ACTION)

	--Restart camera shake
	cameraShake:Init()

	_connection:Disconnect()
	camera.CameraSubject = nil
	camera.CameraType = Enum.CameraType.Custom

Camera Script

local function idle()
	idleShake:BindToRenderStep(shake.NextRenderName(), Enum.RenderPriority.Camera.Value + 1, function(pos, rot, isDone)
		camCf = camera.CFrame

		camera.CFrame *= CFrame.new(pos) * CFrame.Angles(rot.X, rot.Y, rot.Z)
	end)

	idleShake:Start()
end

function cameraShakeModule:Init()
	local humanoid = player.Character:FindFirstChildOfClass("Humanoid")

	cameraShakeModule.cameraJanitor:Add(
		RunService.Heartbeat:Connect(function()
			if not camCf then
				return
			end
			camera.CFrame = camCf
		end),
		"Disconnect",
		3
	)

	local moveShaking = false

	cameraShakeModule.cameraJanitor:Add(function()
		idleShake:Stop()
		moveShake:Stop()
		moveShaking = false
		camCf = nil
	end, nil, 2)

	cameraShakeModule.cameraJanitor:Add(
		humanoid:GetPropertyChangedSignal("MoveDirection"):Connect(function()
			if player.Character.PrimaryPart.Anchored == true then
				cameraShakeModule.cameraJanitor:Cleanup()

				repeat
					task.wait()
				until player.Character.PrimaryPart.Anchored ~= true

				cameraShakeModule:Init()

				return
			end

			if humanoid.MoveDirection.Magnitude > 0 then
				if moveShaking then
					return
				end
				idleShake:Stop()
				moveShaking = true
				camCf = nil

				moveShake:BindToRenderStep(
					shake.NextRenderName(),
					Enum.RenderPriority.Camera.Value + 1,
					function(pos, rot, isDone)
						camCf = camera.CFrame

						camera.CFrame *= CFrame.new(pos) * CFrame.Angles(rot.X, rot.Y, rot.Z)
					end
				)
				moveShake:Start()
			else
				moveShake:Stop()
				moveShaking = false
				camCf = nil

				idle()
			end
		end),
		"Disconnect",
		1
	)

	idle()
end