Еще "зеленые нити" из коробки есть в scala и erlang. Ну и во многих функциональных языках типа haskel.
Максимальный размер стека обычно ограничен размером физической памяти. Если только не наложены ограничения, которое обычно можно изменить или убрать вообще. В линуксе начинать смотреть в файло /etc/security/limits.conf и на команду ulimit
Каждый процесс имеет свой стек! А нить, любая, делит стек со всеми нитями процесса.