I think I figured it out. I had to give my Player controller a rigidbody and set the animation controller to this:
Apply Root Motion: Unchecked
Update Mode: Animate Physics
Culling Mode: Always animate
There is still some slight stuttering, probably just due to my awful walking animations and whatnot. My plan is to disable the puppet until I need it anyway.
I do notice though that if I disable the puppet master and then re-enable it, my character's arms seem to fly back to their initial position when the scene started. Kinematic works fine though. Any idea why that might be? Thanks.