It seems to me that being controlling is part of the problem. When I worked with a top developer, every and each code that I wrote they would have written it faster, more elegantly, more maintainable, and more bug-proof. But when they reviewed my PR, they would approve it if it was good enough. They would point out possible improvements, but once they were done, they would approve and go on. If they used their skill level as the bar to accepting other people's code, they would be doing 80% of the work and writing 80% of the code. In that case, I would be very comfortable just doing much less work than I could for some time until eventually I would get bored and leave.
Still, this top developer eventually changed areas completely (in the same company). From web development, which they mastered to cyber security, where they could start again their relentless pursuit for self-improvement, working with people that knew more than them.
That would be my suggestion. Just change areas, inside software development (inside the same company, if you like there, would be easier, as you already have the respect from people and they know your potential). Go learn something that you are not a top developer. But this is just me, a very regular developer, looking from outside what I saw people more similar to you doing.