I have personally taught programming to a few people, and most people are really motivated if they get to see a usable web app rather then a terminal program, and for a web app NodeJS + Browser is far easier to teach then PHP,Rails,.. + Browser in my experience. They never really understand callbacks initially, but they can mash things up to see something on their screen.
Another big thing about Node is the boilerplate to run NodeJS programs (compared to PHP where installing apache can be a nightmare for beginners, and makes it much harder to understand the big picture)
Async is hard, and takes a long time to breath in I agree. But closures + callbacks nearly look similar to to sync code in other languages. Async code looks much more scary in other languages