Here are a few tips which will guaranty the success with long hair.
1. You have to utilize soft cloth physics (I guess this is obvious).
2. Collision shapes have to be distributed properly (this is also obvious). I have
this article about dynamic collision shapes for advanced collision management.
Hair must have an appropriate collision margin set. And remember that each Collision Shape also has collision margin set in the panel.
3. Hair must be above the body mesh and collision shapes before simulation starts.
If hair goes through the body by default, you have to use morphs (if available) to raise it or edit hair mesh for that (Blender is a quickest way to achieve that).
4. Just a reminder to run/bake simulation in ByFrame mode and preferably start it in T-pose (or some other pose without head/neck/torso being bent).
5. Hair vertices should be 100% weighted to the head bone.
A lot of hair come with part of the mesh skin weighted to the neck/shoulders/spine. This is a bad idea.
It might not directly contribute to the penetration, but would cause hair distortion during simulation in most cases.
6. Now the main course - weight maps.
Any part of the hair mesh which is expected to come in contact with collision shapes must have a pure white applied through the soft cloth physics map.
A shade of gray coming in contact with a collision shape, would penetrate it regardless and a lot of hair out there disregard this.
Below is a demonstration.
I run the same simulation with default weight map which comes with the hair, versus the one I tweaked.
And here are screenshots of the baked sims for the same frame but different maps.
And here is a difference where I recreated the gradient for the default map (for simulation above).
As you may see the actual B/W gradient in only in the middle, but enough to give hair flexibility and smoothness.
So the gradient is only to provide a smooth transition between static and dynamic parts of the hair.
The bottom part (which comes in contact with collision shapes) is purely white allowing hair to bounce right off of collisions or glide.

Video where you can see a default vs tweaked weight maps influencing the hair.
Camera is attached to the head of a dancing girl.