It's a hard task, that demands AT formula experience. In Task table you need to have rollup from Approvals with common info about all dates where stages were approved. In Approvals - formula which can extract a date of previous Approve, or if not, set initial planned date.
I suppose all approvals for Task X is linked to that task.
For example, Approve 1 received 2023-12-07, Approve 2 : 2023-12-11 , others still awaiting. this info must be present in rollup field of Task table, and displayed from there as lookup
In Approval table you need to craft a formula like
IF( FIND ({Previous approve} & ':' , {Lookup of common info}) , MID ((Lookup..} , 14+FIND (({Previous approve} & ':' , {Lookup of common info})) , 10 )
where 10 - len of date,
14 - len of 'Approve X : '
{Previous approve} = 'Approve ' & VALUE(RIGHT( {column containing 'Approve X'}))-1
output should be wrapped in some DATETIME_FORMAT to represent result as a date, or like DATESTR()
don't forget to wrap rollup/lookup fields in formulas in CONCATENATE() to convert array to string.
well, it's too long to explain, I created small raw example (a bit different from text here, but it's working), hope you can pause and see formulas. it's just a partial step in your task, you can get the idea and continue to fulfill your needs.
https://www.loom.com/share/de856b2370104665927cc41aec22e68f?sid=041e3e46-b880-4b7a-a13f-c239dd26a7d7