update to dispatcher deadlock fix

rethink the fix, since the first one was returning before
processing each entry in the list.  This version moves the
list to a local function and pushes entries that require
further processing back to the member list (queue).