1) I'd like to have the option to Suspend Project X if >/=1 task(s) get stuck in Status "Uploading" for >(time period). Conversely, I'd like to be able to Resume Project if the log jam breaks and >/=1 task(s) transition from Status "Uploading" to "Ready to report" after >(time period).
2)This would appear do-able by adding task Status as a rule criterion, and adding "Resume project" as an output event 
3) Practical example: Collatz Conjecture's ISP is highly unreliable, and he pseudoramdomly goes up & down every few hours (usually), or he may be down for a day or more. Since Murphy's Law says Collatz will go offline ~15 minutes after I go to bed, I'd like to be able to auto-Suspend him and fall back to a reserve GPU project (in my case DNETC).
I suppose the new Tuesday->Thursday outage on Seti might be another example for some folks; personally in their case I just let the completed work pile up, since it's a scheduled event 
4) EDIT: Speaking of Suspending/Resuming Project, I'd like to be able to do either at (wallclock time), without other qualifying criteria.
1) BOINC automatically stops requesting new work when there are too many tasks in the uploading status. So that's a suspend sort of.
2) When the uploads are completed BOINC resumes taking in new work.
3) BOINC uses the fall-back project automatically when the share value = 0;
4) Why example.
For the CPU-only projects I support, I have my hosts set up to run with minimum intervention. For GPU (and mixed) projects I find that I still need to intervene quite a lot to optimize RAC. I believe this will continue until the BOINC client allows
independent Resource Share & Work Buffer, etc. settings for GPU (which IMHO is overdue).
Your 1) & 2) are both true, but they are concerned with downloading new work, not
suspending & resuming computation, which is what I want to control. When Collatz randomly goes offline for God only knows how long (which it does several times a day), I may have 24 hours worth of work already onboard (at 35 minutes/WU). I want to suspend the project when an upload hasn't completed for ~30 min, and re-enable it when the backlog clears. If Collatz goes down for an hour, fine. If it goes down for a week (and it has!) I have better things for my computer to be doing rather than crunching WUs that are going to die of old age in the Upload queue.
As for your 3), I recall from when the reserve project "Resource Share=0" feature was added that it kicks in only when the work buffer for ALL OTHER PROJECTS is exhausted. Not much help in this case. Also, not all project servers honor the reserve project status. (Which ones


) The reason I use DNETC only as a backup for Collatz is simple: DNETC's earned credit is almost exactly half of Collatz per GPUhour.
4) (
exempli gratia) I crunch GPUGRID (10~12 hours per WU) during the hours of approximately 1400-0300 UTC daily. Outside these hours I suspend GPUGRID and let the Scheduler pick between Collatz/cuda [except see above] and SETI@home/cuda (15~60 minutes per WU). The reason I do this is based on a number of factors, but boil down to: that's the way I run
my system

A rule to automate this changeover would be appreciated
