Is there a way to approve a stage in advance when starting the build or during it?
Azure devops does not support this feature to approve a stage in advance when starting the build at this moment.
According the document Define approvals and checks:
A pipeline is made up of stages. A pipeline author can control whether
a stage should run by defining conditions on the stage. Another way to
control if and when a stage should run is through approvals and
checks.
A stage can consist of many jobs, and each job can consume several
resources. Before the execution of a stage can begin, all checks on
all the resources used in that stage must be satisfied. Azure
Pipelines pauses the execution of a pipeline prior to each stage, and
waits for all pending checks to be completed. If any of the checks
fails (for example, if you reject an approval on one of the
resources), then that stage is not executed.
We could to know that the approvals and checks are set for the stage not the pipeline. When our stage has not been started, it will not detect the approvals and checks we set.
But personally think that your request is reasonable, we need to strip the approvals and checks to a certain extent to allow it to be detected when the pipeline starts. You could add your request for this feature on our UserVoice site (https://developercommunity.visualstudio.com/content/idea/post.html?space=21 ), which is our main forum for product suggestions. Thank you for helping us build a better Azure DevOps.
Hope this helps.