In the PlayerIdleState script my player was continuing to drift once transitioned in from the Move State. Not sure why, perhaps I missed something in the code, or perhaps float imprecision or framerate overshooting the method in some way?
Anyway, if you get the same issue, here is how I fixed in the PlayerIdleState Script: