Looks like this was a bug in my code.
When triggering ragdoll, I called SetAllBodiesBelowSimulatePhysics() before SetSimulatePhysics(true). After removing the call to SetAllBodiesBelowSimulatePhysics(), ragdoll works correctly.
I think you can mark this question as resolved.