I think you're underselling Java and C++. The JVM idea is clever because it means you do all the portability stuff as part of the language, rather than asking programmers to do ifdefs for every platform. Making it a safe, memory-managed language is clever because most programmers don't care about the performance hit, but they do care about the bugs.
C++ has equally compelling advantages. If you write less code, you get less bugs, and more work done at less eyeball-hours. If you can do that 'zero-cost', with abstractions, a lot of people who care about performance are going to find that really exciting.
Rust basically continues this pattern.
Obviously you have to sort of win the lottery as well, because you need enough people to bring the language from clever-research-project to useful industrial tool, but I think the fundamental point is that successful languages have both luck, and a killer feature.
I imagine all of these languages will sink out of sight at some point, because it's just clear that as a culture we're in the very early days of living with computers, so these languages are a bit like bone needles or flint axes. I still think the innovations contained in them will go on to inform future development.