This comment makes me feel like there is a race condition between a task completion getting committed to the DB and the callbacks getting called.  So, like, it could be possible for a task to actually fail (because the DB interaction failed) even though the callback was called with a success.  Can we do the callbacks after we are 100% what the actual outcome of the task will be?