Elixir doesn't really push much of the state of the art forward. It's pretty much Erlang with new clothes (and some nice cleanups). I worked with it for over a year and while I loved the 'fail fast' model of programming, most of the errors that were caught were stupid programming errors that would have been trivial to catch by a type system.
What I really want is a type system for reasoning about distributed, stateful, programs. Has to deal with mixing strongly consistent eventually consistent (CRDT) data with synchronisation points (see Bloom/Lasp), hot code reloads, migrations, messaging across nodes, possibly some sort of row polymorphism combined with clojure's namespaced symbols... Like sort-of like Cloud Haskell but with zero-downtime deployments. Or like Pony but with a better distribution story.
Elixir is mostly different syntax(Ruby-like instead of Prolog-like) for Erlang. Beyond syntax change it fixes some Erlang warts, ads better metaprograming and great tooling. Elixir isn't academic innovation - it's about proffessionals convinience and effectivness similar as go lang. Started by 1 person.