What you should do is wait until the animation is almost finished. Something like this (I haven’t tested it, but hopefully you get the idea). Then when it’s almost finished, set the animation speed to 0 so the animation basically freezes right at the end, keeping the player in place.
Does the HumanoidRootPart remain outside the closet? I’m thinking that it does that because your animation walks the character inside the closet, and when it’s done, the animation stops and everything goes back to the default “no animation playing” state and that’s why it’s doing that.
Easy fix would be to create another animation where it’s just the last frame of the entering animation (the final pose with the character inside the closet), set it to Loop, then play this animation as the entry animation ends. Of course this means the rootpart is still outside the closet, but if this fixes it, then that was your problem.
I found that making a marker right when the player animates inside the closet/wardrobe and using Animation:GetMarkerReachedSignal("Inside"):Connect() then pausing the animation, works very nicely. Thank you for your help!