While I am not entirely sure why its inconsistent, it seems like you are using differing speeds on the Velocity every 1/60 second. While what you have now can give the affect of slowing momentum, the quick shifts in the velocity probably aren’t that noticeable. A better alternative is to just do:
bv.Velocity = HumanoidRootPart.CFrame.LookVector * 40 -- or whatever number
task.delay(0.6,function()
bv:Destroy()
end)
Also, I’m unsure what you were unable to achieve using the LinearVelocity alternative, but if you were concerned about the player not falling down from gravity, you should check out my response HERE as it resolves that issue.