I'm running Folding@Home and it allows you to nominate the fraction of each second that it runs. So you can have it running for say 0.7 sec and idle for 0.3 second (it may schedule itself even more finely that that, if so all the better).
This means that there is cpu time within each second where oridnary tasks (email, WP, etc) can run and not have any contention with F@H. Any priority scheme can foul up eventually and compete at the same level with normal tasks - I've found that seti@home classic runs at Windows level 4, but offline folders in Outlook get processed at level 1, and s@h classic hangs them.
It's cruder but guaranteed to work, if you background a grinder task in both priority and time-slicing. Then any unexpected task that pops up, maybe overnight when you're not there, can be sure to have 20%, or whatever you nominate, of the cpu. I'm happier to sacrifice 20% of my s@h cycles to keep my machine reliable in this fashion.
Or, s@h could just detect other activity trying to run and back itself off for a while, like it does for detected keystrokes. I guess this could get recursive when Boinc is running multiple projects, but should be solvable.