I agree that a fixed structure is more efficient than a growable stack, especially in terms of memory allocation. But I don't understand how you apply this to an evented server. Asynchronous callbacks are often associated to closures. But closures can vary in size, which makes hard to store them in a fixed sized structure. What am I missing?
I haven't read nginx source code, but I guess they are able to store continuations in a fixed structure because they don't use closures and they know in advance what information must be kept. I don't see how this approach can be used as a general purpose concurrency mechanism for a programming language. But I'd like to learn something :-)
"Why Events Are A Bad Idea (for high-concurrency servers)" is an interesting counter:
https://www.usenix.org/legacy/events/hotos03/tech/full_paper...
For these reasons and others, nginx could never be as fast as it is with a goroutine model.