This sounds like a well-designed union of various languages--I do the same, albeit with different languages, and it really helps reach quality solutions quickly if you and/or the others responsible for the code can handle all the languages.
The table of benefits is a bit weird, though. Concurrency in C++ is terrifying, not fearless--how does it rank a 7, only one spot below Rust? Rust has a brand-new best-in-class modern toolchain and ecosystem that basically everyone seeks to emulate; how is it only equal to C++ and Erlang/Elixir? Are you sure you can't get better flexibility/performance in real time out of Rust than Erlang/Elixir? What can possibly have better performance for memory management than C++; are you giving it less than 10 because it is possible to use safe features that are slower?
Anyway, despite that, the choices in each area seem well-founded. They're not the only possible choices, but they're good ones. It's worth considering what other choices you might have made.
The ML libraries are basically all written in C++ at the core, so why not use C++? But if one wanted to use them wrapped for Rust or Go or Julia, that would probably also be fine. Given the performance demands, Python would be a risky choice but probably could be made to work out with a little discipline.
Erlang/Elixir does fault-tolerance really well. So does Rust, albeit with more effort on your part. You can do really well with Scala with the right framework (which basically cribs the Erlang/Elixir strategy and runs it on the JVM instead of the ERTS). Go can also do quite well here--it's close to its sweet spot.
It isn't clear from what you wrote that the Haskell part needs Haskell's strengths in a way that wouldn't have been perfectly well-met with any decently-performing modern language: Julia, Rust, Scala, Swift, F#, C#, etc., but as you dial up the complexity of the representations of your data the other languages gradually fall away, with Scala the last to go before Haskell is left alone. However, especially peculiar is "readable and maintainable code" as a Haskell advantage unless everyone is a Haskell expert. Haskell is the least readable of almost any modern language for non-experts. (Even if you can't read it, though, it's highly maintainable because generally either you are stuck and the compiler yells at you, or you understand it enough to make it work.) This is really not a reason to choose Haskell if you don't already know it well.
For performance and safety at the same time for sensors etc., it's really hard to argue with Rust. You might be able to do it with Swift or possibly Nim, but if Rust has a sweet spot this is it. I have myself thrown out C++ code that I wrote and replaced it with Rust in exactly this sort of scenario.