Better waterfall, before/after hooks for sync queue