It seems like this method will callback forever.  Where do you exit for hard shutdown if busy never clears?