+1 to that.

We have a similar implementation in WorkLoad. Our persisted entity's 'status' field is what determines which callback will be executed.

Would be great to get that unified as part of core furious.