I think it might be beneficial to understand your full use case. There are multiple ways to do something similar to this but the intent and execution may differ without further details. Do you want a process to 'expire'? Do you want it to not execute twice at once? What is the real need?
We don't want our process to expire and also not to execute twice at once. We have a provisioning wrapper workflow which is triggered one time by an alert and it runs endlessly by creating an alert at the end of each instance triggering another instance of the same unless CPO hangs or goes to stand by mode. Since we belong to service team, we don't have any kind of access to CPO DB or logs, so that possibility is ruled out. Just checking for alternatives.