The CallQueueManager has a mechanism to enforce backoff when various criteria are met, as defined by the implementation of RpcScheduler used. However, it currently only checks for these backoff criteria when put() is used; add() calls are passed directly to the underlying call queue. It should check the backoff criteria for either call.
Also, when refreshCallQueue() is called, the backoff configuration is not refreshed. This should be updated as well.