|Eike, OS processes priorities have a different purpose.|
Processes with higher priority get the CPU first but it does not prevent processes with lower priority to also get the CPU for instance when the high priority processes perform I/O operations (access files, network, etc..) and have to be put to sleep until I/O operations finish.
In practice lower priority processes still slow down the system unless thety are put to sleep for a good while. That is what my method does. If the system average CPU load is high, background processes that my code controls are put to sleep until the average load returns to acceptable levels.