If C# is more cumbersome, then perhaps there's a way to make it less so while keeping flexibility and power.
I only can see two clear advantages to c# over c++: garbage collection and reflection. Everything else boils down to syntactic preferences or minor features. And there's a lot of useful things that c# is missing compared to c++.
I'm sure in time both things will make their way into C++ in a way or another (garbage collection is half-way there).
I don't think that D is a good answer to the shortcomings of C++. I'm not a fan of the "let's add in everything and the kitchen sink" approach.