Also, regarding the "Donation Period", I tried to reorder the pools using the "Switch to" buttons of the miner.php page and what they do is to switch the pool, without killing the cgminer program, as you can see in the following image (I did a switch from pool 0 to pool 1 and again a switch from pool 1 to pool 0). The cgminer is still running.
How do you know this? I set two pi's up with miners and scripts, one to try switching pools via restart and one to do it via the API every 30 seconds for over a day to find the most reliable method. What tests did you run?
Why don't you fix your donation pool as pool 'n' and at donate time, do a switch command to your pool, doing again a pool switch to user's pool at end donation time, instead of killing the cgminer program, launch a new instance with your pool and then, @ end donation time kill it again and launch again the cgminer with user's pools? Killing cgminer 2 times a day is risky (one time, last week, cgminer refused to detect both USB Gizmos) and info is lost, like running time, best share, Hardware Errors, etc...
Can you PLEASE stop asking for new features whenever they occur to you!
I am sorry, and I don't want to appear snarly but if I just start to through things in whenever the fancy takes me this whole this will turn into a buggy, wonky bit of s**t in no time flat!

The way I (and a lot of other developers) work is we slowly chip away at he code, we release one thing, let it sit and test it for a while with the testers, perhaps go back and make improvements, then once we are happy and the code appears good we release another thing (and the development cycle continues).
I will get to the features you want, you just need to let me do it in my own methodical systematic way.
Neil
P.S I am not really grumpy, its just every post you make there is something new! I also have to hold down my full time job so I can do this for you

.