Kivy gives you a pretty good separation of logic and UI with its declarative yaml-like kv files. For me, it conceptually feels a lot like developing in React.
I've made React applications using Python via Transcrypt, but wrap component functions in a Python decorator that make direct calls to React.createElement() instead of using JSX (example: https://github.com/JennaSys/tictacreact2). It's possible to use JSX with this approach as well, but IMO it starts to get messy and defeats the purpose of using JSX in the first place.
I've had the best experience with Thonny working with MicroPython. I'm amazed at how seamless updating files and even flashing MicroPython on devices like the ESP8266 and Pico is. I do miss the Python coding experience of PyCharm when using it though.
I used GWT a long time ago and it was great for being able to write a complex algorithm that had to run on the server as well as in the browser. It saved a lot of time and trouble, and you always knew that the version running on the server was the same as the one running in the browser.
If you are already adept at coding in JavaScript and you actually enjoy using JS, then you would not be the audience for these Python (or other language) web dev projects. However, if you are not a seasoned JS developer or you just don't like coding in JS as a personal preference, then I think these are worth taking a look at. I hear the phrase "just learn JavaScript" quite a bit in regards to these, but I believe learning an API is easier than learning and being proficient in an entire programming language. These tools all have their own approach as well and some are more suited to certain tasks/audiences than others.
The ugliness is something I struggled with a bit when I was first using Transcrypt to create React applications with Python. Even though that approach is more of a 1-to-1 Python-to-JS mapping instead of a Python wrapper, I felt all the calls to createElement affected readability. But once I started using a Python decorator to wrap the components in createElement, the code got a lot cleaner. Here's a basic example based on the official React tutorial:
https://github.com/JennaSys/tictacreact2/blob/main/tictacrea...
Same thing happened to me. I got to a point where I had to conclude that the issues with the CEO was not something I could fix and I had to walk away knowing that I'd likely lose everything I had invested in the company. And I eventually did. And like you, the trust issues linger on. Your edit is spot on - narcissism alone in a CEO is common and manageable, but if they have NPD, get out NOW.