IMHO the API is fine for anyone not afraid of C. It’s maybe not pretty but it’s efficient. I’ve seen lots of pretty code out there which actually fails at it’s primary mission (whatever that may be). Simple structures pack nicely and are fast to transmit/consume. The supporting SDK files (headers/etc) are generated for both managed and un-managed code, which is rather clever. It is also much simpler to integrate an old-school C-style DLL with other languages (Python, Node, whatever). If someone wanted to stick a pretty C++20 interface on top of that, nothing is stopping them.
You can use an event handle instead. A window handle isn’t required, and hasn’t been since I can remember.