Prevent any queued calls between Done signal and key delete

Having the `.Done()` call outside the mutex seems to leave a window where new calls could grab the lock and queue before the map key is deleted.  In this case a call would hang indefinitely.