Is this literally just to avoid using setState in favor of seeing it directly? Cuz that kind of main will make the asynchronous setState API even less transparent to people that use this.
It completely avoids setState (doesn't call it in the background).
It fixes it in a sense that your state is updated synchronously. The state is just a plain object. If you update it, it gets updated. Renders are triggered asynchronously in a batch however to be performant.
Also setState can be troublesome when you deal with complex data structures - like arrays, collections or getters/setters. This is when this library really shines.