Queue Notifier Extension Script
Foreword

I know that this was posted nearly 1.5 years ago and the code appears to have changed dramatically and perhaps you've already learned about what I will mention below, but I feel like this question needs an answer...

Feedback

I like the good use of the Notification interface, as well as the radix passed to parseInt().

Suggestions


The code to check if the site is in the list of active sites, i.e. 


if ((tabUrl == sites[site].site_url + '/review') 
            &amp;&amp; (ACTIVESITES.indexOf(sites[site].name.toLowerCase()) &gt; -1)) {



can be simplified using Array.prototype.includes(), which has been supported since FF 43 (released 12/15/2015) and Chrome 47 (released 12/01/2015):

if ((tabUrl == sites[site].site_url + '/review') 
            &amp;&amp; (ACTIVESITES.includes(sites[site].name.toLowerCase()))) {

The reload registration could be simplified from:


setTimeout(function(){
    window.location.reload(); 
}, DELAY);                  



To the following, which makes a partially applied function using Function.bind():     

setTimeout(window.location.reload.bind(), DELAY);


that way there is no excess lambda/anonymous function, and two fewer lines (I get the impression you might like one-liners)!  
The selection of dashboard elements could be simplified, using a more selective CSS selector:


var reviewItems = document.getElementsByClassName('dashboard-num');
for (var i = 0; i &lt; reviewItems.length; i++){
    if (reviewItems[i].parentNode.className != 'dashboard-count dashboard-faded'){



Instead, one could utilize the :not() selector and document.querySelectorAll() (or jQuery selector function, though that would return a jQuery collection instead of a NodeList):

var reviewItems = document.querySelectorAll('.dashboard-num:not(.dashboard-count):not(.dashboard-faded)');

One could utilize promises for the asynchronous callbacks...