Don't retry forever when a provider is stopped

When we stop a provider, it does not accept any new tasks.  In that
case, we should raise a specific exception so that loops that retry
for a very long time can exit early since the "error" will never
recover.

Change-Id: I7387849ffdb96c487bae4c31ca7cbdd07b8afd8a
Merge "Don't retry forever when a provider is stopped"