There is a feature of Classic Release pipelines in Azure DevOps called Deployment queue settings that can define the behavior of subsequent releases.
The default setting is "Deploy all in sequence". By changing this value to "Deploy latest and cancel the others" newer releases will cancel the approval on existing stages.
Although there isn't an equivalent for YAML-based pipelines, I have an extension that can emulate this behavior.