At large scales, we see large spikes at the exponential back-off retry times. Ideally, we'd use the exponential back-off time calculated as a max seed to a random time generation.
Example:
n=5
2^n-1 = 2^5-1 = 31
-- here is the new part --
randomize from 0 to 31 inclusive. [0, 31]
-- end new part --
use the random value as the delay before retrying.