Player can't move while being tweened

I’m working on a platform fighter, and I’ve made a script that tweens the player turning left and right instead of it immediately looking either direction, the problem is that the player can’t move while being tweened, any way to fix this?

local players = game.Players
local player = players.LocalPlayer
local character = player.Character
local root = character.HumanoidRootPart
local camera = workspace.CurrentCamera
local UserInputService = game:GetService("UserInputService")
local TS = game:GetService("TweenService")

local keyA = false
local keyD = false

game:GetService("UserInputService").InputBegan:connect(function(inputObject, gameProcessedEvent)
	if inputObject.KeyCode == Enum.KeyCode.D then
		keyD = true
		keyA = false
	elseif inputObject.KeyCode == Enum.KeyCode.A then
		keyA = true
		keyD = false
	end
end)

spawn(function()
	while true do wait ()
		if keyA == true and keyD == false then
			local Tween = TS:Create(root, TweenInfo.new(.5), {CFrame = CFrame.new(root.Position, root.Position - camera.CFrame.RightVector)}):Play()
			keyA = false
		elseif keyA == false and keyD == true then
			local Tween = TS:Create(root, TweenInfo.new(.5), {CFrame = CFrame.new(root.Position, root.Position + camera.CFrame.RightVector)}):Play()
			keyD = false
		end
	end
end)

You can speed up the tween or I recommend using/adding a BodyGyro | Roblox Creator Documentation for assigning the HumanoidRootPart’s Look Direction. You can tween that or just set it.

use bodymovers + gravity modifications to get the same effect, that is not what tweenservice is for