Детские ошибки. А ты учел, что каждый раз, когда ты ставишь прокси, ты паралельно ставишь НОВЫЙ обработчик авторизации chrome.webRequest.onAuthRequired.addListener? При том СТАРЫЕ обработчики никуда не делись, они продолжают висеть и вызваться при каждой авторизации. Ведь ты не удосужился старые обработчики при помощи chrome.webRequest.onAuthRequired.removeListener удалить, а надо бы!
Тебе надо все переписать так, чтобы обработчик chrome.webRequest.onAuthRequired.addListener ставился только один раз за все время жизни фонового процесса background.js, либо удаляй сначала старые обработчики, прежде чем ставить новые.