Yes, it is rough, and your feedback will help with that. In fact, at start, I was looking to do this in ReactDom but I didn't find the right hooks for it. I'll contact you soon see what can be done about all those issues.
I believe I've fixed 1 and 4. Regarding the others it might, related to the way react does things, I'm trying to get some help form the React community to see how this could eb done in a better way.
Yup, that's certainly another option. Haven't tried it, but I would say that the asynchronous nature of mutationobserver would make this blink the elements before animating them.