The biggest obstacle to erlangs adoption is that it does not have a low barrier to entry. The syntax is strange, the way of structuring and building solutions is strange. It is incredibly powerful, but it requires a different way of thinking.
Elixir makes sense because it is a lower barrier to entry. This is a very important factor. It is one of the main reasons why node.js was so successful in reaching a large audience. It is why Go is more popular than Erlang. They are often used in the same domain and Erlang is arguably more powerful. People still choose Go however.
I will agree that Elixir has better tooling around building and releasing code.
However, in terms of barrier to entry for developing in, I actually think Erlang's is lower. People tout Elixir for its syntax being similar to other languages, but that's a detriment, not a benefit. Erlang and Elixir, both, require you thinking in a way most other languages don't. With Elixir, and the language looking familiar, you're tempted to try and shoehorn your existing knowledge, practices, etc, into an Elixir shaped package, and that leads to less idiomatic code, more surprises in how things actually work, and sometimes even more brittle applications than how they ~should~ be (though having a decent supervision tree means they'll probably still be better than what you'd have had in those other languages). Using Erlang, though, you relearn from scratch. It's a small language and that syntax isn't really a huge barrier; being forced to code in a language that shares so little with what you're experienced with means you're likely open to new paradigms, and will pick them up instead of trying to reuse your existing ones.
At least, that was my experience with Erlang, compared with Scala/Akka (which I tried first, and ended up with a lot of OO, non-functional, non-parallel code).
I had a similar experience with both Erlang and XSLT -- they don't look anything like a typical imperative language, so I wasn't tempted to think in imperative terms. I just had to do things "the Erlang way" and "the (crazy) XLST way."
I studied prolog too! For a semester only but I loved it. I don't remember much of it but I loved it because it felt like a true "high level" programming language to me. Describe it a problem and ask questions. Felt like magic.
Also learning erlang was much easier when you had some basic idea of prolog. Clauses did not seem so weird and once you understood how clauses work you've basically got 80% of the language nailed.
What I don't really understand though is why erlang didn't go all the way. Why take only surface level features of prolog and ignore the really cool parts?
Erlang vaguely looks like Prolog, but it has semantically nothing in common with it. Even the syntax is quite different beyond base similarities to predicates.
Elixir makes sense because it is a lower barrier to entry. This is a very important factor. It is one of the main reasons why node.js was so successful in reaching a large audience. It is why Go is more popular than Erlang. They are often used in the same domain and Erlang is arguably more powerful. People still choose Go however.