While scheduling is a primary concern for performance, the end result is that all of the aforementioned considerations, and navigation of resource details creates microseconds of latency which further reduce the performance of the system overall. Scheduling should be a 2-5 instruction operation around changing some pointers and restoring register contents. It's great to see MS working on improving the kernel, but the NT kernel seems to be a bigger thorn than a pretty flower that users see the effects thereof.
It would be great to see how the app environment can be hoisted out of the kernel and into the user space where complex needs of system interaction are things that complex apps lose quanta over, not stuff that simple apps suffer through and thus tend to have very intermittent scheduling throughput due to how many things are being considered, in the kernel, around who runs next.