Character sliding when landing using custom turning logic (CFrame:Lerp problem?)

I’m making a first-person game, which is supposed to be an eerie and immersive experience, and as such, I wasn’t happy with the default movement in first person (character is very jittery when in a ragdoll state, and very rigid when turning)

With my current solution, which is having the Humanoid.AutoRotate property set to false, and running the following in RunService:RenderStepped:

	local humanoidState = humanoid:GetState()
	if not camPart and humanoidState ~= Enum.HumanoidStateType.Ragdoll and humanoidState ~= Enum.HumanoidStateType.FallingDown then
		local lookVector = -camera.CFrame.LookVector
		local targetRotation = math.atan2(lookVector.X, lookVector.Z)
		character:PivotTo(CFrame.new(character:GetPivot().Position) * character:GetPivot().Rotation:Lerp(CFrame.Angles(0, targetRotation, 0), .3))
	end

And this makes the character slide when landing (As it doesn’t happen without the custom turning):

There’s one solution I found, of setting the character velocity to 0 when landing, but I dislike this fix, as it’s not very dynamic, and there are potential cases that I don’t want that to happen, which I’d prefer not to also hard-code.
Other than that, I haven’t really been able to find any other factors that might be affecting it.

[On Character]; If on, Turn off Massless on any Parts, Turning off CanCollide on all parts Except the HumanoidRootPart can also help.
Also Reset the Model size of the character.

Turning on massless for all parts of the character fixed this, but that messes with other use cases of applying a force to my character, which I’d also like to circumvent