Yes sure I've heard that Qt6 improves the integration and type safety but I haven't tried that yet myself.
Communicatingn with signals and slots and using Qt Property system is straightforward yes but even more straightforward is to when you don't have to use it. The real problem is when you change your properties or your underlying types or the methods, their names or signatures and NOTHING tells you which part of your QML code will be affected. You just have to.. kinda know. In practice you'll of course miss something and then it'll just blow up at runtime with some "bla bla is undefined" error.
That being said if you're comfortable to use it and find it works for you more power to you. I'll just stick to my widgets. :)