According to Kai, any sleep more than 300-500 msec is probably too long. So in the “Refresh Switch” rule above, where it sleeps for a total of 16 seconds there could be some major problems if it is ever possible for a few of these rules running at the same time. There is a small number of execution threads available to run Rules and sleeping for a long time ties up one of those threads.
If you truly have a constrained resource, you can try Design Pattern: Gate Keeper. This separates the communications to your constrained resource from the rules that need to make the communication so that you can manage the timing between messages. This is particularly important if there are multiple rules that need access to the same constrained resource.