Hmm, I'd have thought that PMT would be of much less value (particularly for the task of writing a http server - trying to desparately bring this thread back on topic) unless you also has a re-entrant filecore. I find the fact that RISC OS stops as soon as it does any disc IO operations one of the most glaring difference when moving from other operating systems.
I don't think it's as simple as either having each process with its environment or having semaphores (and more specific locking APIs). There will always be shared resources, so you'll always need semaphores in any case, and separate environments it quite likely to break existing software.
For example, a case I encounter from time to time that's quite applicable to web servers is changing the current directory. When issuing such a command you need to be very aware of whether it's going to happen as a sub-process, or whether it will happen as part of the current process. If the former case, it may spawn a process with it's own environment, change the directory in that environment then immediately delete it as the process closes - so your call had no effect.