I think the main benefits of language support for concurrency here are that
a) you get lighter syntax which encourages developers to use your light-weight implementation
b) you can reduce unpageable memory by using user threading, _with sane semantics_. I read that Solaris had a hard time getting all the corner-case bugs out of their M:N pthreads library (in particular w.r.t signal handling). They eventually managed it... but then gave it up and changed the default back to 1:1 threading in Solaris 9. See <http://www.kegel.com/c10k.html#1:1>.
I will be very interested to see if split stacks make 1:1 threading competitve with the likes of GCD blocks and Go's "goroutines".