I haven't personally done web apps that way, but used Erlang years ago for some non-web TCP servers that handled 1000s of connections without breathing hard. There were a few gotchas that had workarounds then, and that might have real fixes by now.
Erlang's picture for scattering stuff across multiple servers isn't as great as it might at first sound, but it is something. I do think the BEAM's lightweight process model is how all the popular interpreted languages (Python, Ruby, JS) should work by now. Unfortunately we still end up using OS threads and/or messy async schemes instead.
cars.com, divvy, pepsico ecommerce, slab, ramp, discord, bleacher report, weedmaps, $DAYJOB, etc.