IMO I just feel limited by all these abstractions and layers to "simplify" things, but at some point you're just shooting yourself in the foot.
Choosing the right abstracts and "API language" is a true art. When done well, programming peripherals become one-liners that you still understand after 6 months doing something else. These 'unnecessary' layers of abstraction are needed for when project become more complex and elaborate. At a certain point you cannot hold the details of the entire program in you head and you need to hide complexity behind an abstraction. Also when the API is designed well, it's very easy and quick to learn and use it in your program.
As for the language, I think a we can do a lot better than C. I would go for a subset of C++ just because most vendors have some level of support for it. Also meta-programming (C++20) is something to keep an eye on (beyond constexpr). That would allow you to express a lot of static stuff at compile time and control what can and cannot be done at runtime. "
Wrong code should not compile".
I have serious doubts if any custom language could ever get the traction and maturity of a well established language, like C++ (breadth of support, tools, community etc). If you want to try something new, I would take look at Rust, which looks promising.