and it doesn't seem to result in less bugs.
You are approaching enlightenment, young one.
What if I told you you could make massively parallel, high performing applications without concurrency bugs.... in C? The whole trick to what languages like Elixir do is break things down into tasks and then pass messages between them through a thread-safe queue. This can be done relatively trivially in C with the right sort of zen about it, and probably an order of magnitude better performance than anything else.
I recently did this to my texture loading and processing system for the game.