I guess I don't understand why we are calling the callback before the 4 steps you mentioned have completely succeeded?  I think that only once all 4 things have completed should the callback be called and a failure in the callback is unfortunate, but the caller needs to get their shyte together.  Maybe I'm not understanding exactly what the callbacks are being used for?