A little update on this:
So, animations themselves are not broken - after extensive debugging, I found they are exactly the same. In fact, if you export the animations from 2.81 and apply them to a mesh exported from 2.80, it actually works fine! So this means something has instead changed with regards to calculating blend weights, but only when converting to left handed mode. A weird bug, but at least I now have a vague idea as to where the problem lies.
It did actually result in me making a tiny optimisation for exporting quaterions to left-handed mode too, which is nice.
The good news is that this slighlty increases the chances of me backporting some code again!