Mullvad worked OK in China for me recently. Sometimes I'd have to try a few different endpoints before it worked. Something built specifically to work in those places would probably be better, but it wasn't too much trouble. Not necessarily a recommendation, just sharing one data point.

I remember always needing obfuscation enabled in Mullvad, but it would work in the end (as you said, after trying a few endpoints).