Don't give up so easily on your guards if the consensus calls them Running
If your guard ever fails to do everything you demand, you'll mark it as not running for several hours (i.e. until you get a new consensus that tells you to forgive it). So an attack to railroad you onto the adversary's guard (even if temporarily, which isn't so bad for a normal client but is super scary for a hidden service) gets cheaper.
It would be wise to forgive guards in the "we decided they're down but our consensus still says they're up" state much more quickly and often. That changes the attack from a serial "get us to mark each guard down one at a time" to either requiring you to do it in a much shorter time frame, or the more expensive parallel "keep a growing set of guards all down until the victim chooses ours".
(A discussion with rpw at 29c3 reminded me of this issue, and now ongoing discussions with Rob re-remind me of it.)