How should For each mail work?

Given the favorability of Attended automations with StudioX, we realized there are two approaches to the For each mail concept.
1. Get a snapshot of all the mails at a given time, then process them one by one.
Advantage: easy to develop (concept already exists in Studio).
Disadvantages: Slow if you have many mails to fetch. If a mail was moved/read by the user during execution, I cannot know without heavy rework. If new mails have arrived, I have to fetch again, otherwise I will not have finished “Each mail”.
2. Always get the latest/oldest mail.
Advantages: Feels natural for the user and can actually finish the Inbox in one Run.
Disadvantages: Harder to implement, as you need to find a way to mark the mails you already processed (read/unread, category?, move to folder).

Which way do you think would be best for StudioX and Attended automations?

Are you saying that with option 2, rather than have a snapshot at a time and looping through those, that you would pull the latest mail only (with a filter), so the user did not have to run a for loop to check multiple times (for new mail that has come since the snapshot)?

Yes, you would have a For each mail loop, and it would always fetch only one mail at a time, having no idea how many others there are left. It would continue to get one mail at a time until all the mails have been processed.