Language primitives aren't a substitute for a distributed queue service. You want stuff like persistence, scale-out, and retries if a node falls over and doesn't come back.
Something like Erlang's OTP might have suitable primitives, but only because it's already a distributed system.