No longer clear out deferred as there is a race to deinit it before its then handlers run.
Now store the child of deferred instead of deferred otherwise the child is released right away and the handlers never execute.
Need to see if deferred can be released earlier to free up excess memory after it is no longer useful, it was previously before all the refactoring occurred.
Could use some tests around this problem.