After a few issues with never ending gpu work units on DiRT, I did some searches and came up with this gem:

"When Boinc does the cpu benchmarks it talks 100% of the cpu time, leaving no time for any cpu to feed the gpu, here at Rainbow they do not account for that in the programming, some other projects have the same problem, but it means the gpu stalls and then can't pick back up again so it just waits, and waits, and waits! "

Fixed by adding <skip_cpu_benchmarks>1</skip_cpu_benchmarks> to your cc_config.xml

Appears to definitely apply to DiRT and could also be the cause on other projects when it isn't a driver crash or o.c. problem. I have add it to all my pcs. I am still going to leave my BonicTasks rules for DiRT in place that suspend tasks if they take too long.

I wasn't sure where to put this post for easy finding.