I discovered when adding the tests why I sometimes get multiple callbacks from the URIBL and DNSBL plugins. If they return early for any reason (error, private IP, IPv6), the callback is called before pending gets incremented by the next query. 

From the commit notes: "pending was being incremented within multi/zones.forEach. That functions callback was returning and being executed before pending was incremented for the next RBL. Net effect, the dnsbl plugin saw its callback called with pending=0 for every DNSBL listed."