endel I totall agree with you about the dev experience provided by Construct. That's why I try to separate addon development as much from C3 as possible, and provide a thin and well defined layer of interaction between C3 and my addon.
E.g. I've decided to create my UI elements with React on top of C3, because it's fun to work with React, I can develop all the required interactions there, and have some simple, well defined methods to communicate between React and C3.