Part of the difference with Java is that a lot of libraries haven’t changed in twenty years because they already work. Adding async/await would probably mean writing an entirely new library and scrapping the old already working code, while green threads allow the old libraries to silently become better.