Yea, that was indeed a bug.  I'll have to rewrite the entire retry method to take into account the non-blocking callback