I have actually tried this solution as well and I had to reduce the compilation jobs to like 4 (usually would be 16 with my 16 logical cpus) before it helped any. That is simply too much of a reduction to be worth it, it makes compilation take ages.
And in the end, that's still just a workaround to the more general problem that is the fact that the desktop environment and user input is not prioritised in the scheduler, when it really should. I really want Linux to succeed so it pains me to see Windows do better in this situation.