Valgrind seems to be a modern version of Purify, which was absolutely essential, when I programmed C 30 years ago.
Personally, I want to run with full debug, stack trace, logging, exception handling, and bounds checking turned on all the time, even in production. Which is why I generally use a modern language like C# or Java.
I'm with you on Python being rubbish, but have you considered something like Rust? That gives you the benefit of a modern language, without Garbage Collection pauses (if you care), or the need for a runtime environment (like Python, C#, and Java).
Even using C++, would give you exception handling. C++ won't force you to go too far, If you don't want to.