How much of this is truly "Erlang" GC and how much just happens to be the current implementation found in Erlang? Does Erlang the language specify that this is how the GC acts, or is the language free to use whatever GC implementation it likes? iN short, if you are writing in Erlang, can you be certain that the GC will always act in the manner described?
Erlang basically has BEAM which is similar to Cpython or YARV in that it is both the official implementation and de-facto standard because the actual standards are either non-existent or don't cover a lot of edge cases (making an unofficial spec).
That said, I believe that if an official third-party specification for Erlang were ever created, it would likely have to specify a similar GC and threading system because this is necessary to allow the normal Erlang programming style.