Would you have the staging environment share data with production or have its own infrastructure? or use feature gating? One customer may not care that it shares the same DB, but another might.
How would this work at scale? say if there were say 10 customers wanting approval, you'd have to have separate code release branches/versions for each customer? I imagine this could get error prone.
I suppose to your point on charging additional fees for this you can afford any sort of workflow.