Really high-performance server applications will generally prefer cooperative multi-(task|thread)ing. You might look at
http://pl.atyp.us/content/tech/servers.html for an idea of why. (Specifically the sections on context switches).
However, of course you won't limit yourself to only a single process. Multi-(CPU|core) machines are the norm, so you have to have multiple processes (or threads) to take advantage of that. I'm not really sure how easy or hard it is to have multiple POE processes running at once, but that is what you would want to do in general, both to address the blocking issue and the multi-processor issue.