I would put Erlang far to the right of Go in terms of "beautiful, straight code". (Or, rather, Go should be farther left).
As for concurrency performance; that depends on a lot of factors. I once sped up some concurrent code by about 2 orders of magnitude by nothing more than reducing the number of context switches from conventional threading. I don't know enough about the details of Erlang's and Go's implementations to know whether this would account for Erlang's performance (that is, Erlang gains by its multiprocessing model that (probably) minimizes context switches; but loses because it runs as bytecode on a virtual machine vs Go's native code).
Also, Go code needs a rewrite/redesign to scale across multiple machines (channels only work within a single (multi-core) machine) -- there's something called Vice, which extends the channel concept across machines, but I don't know its performance vs Erlang.