You'll have two flows: the first covering steps 1-3, with an additional step, and the second covering steps 4-5. I use a flow very similar to the second one, capturing attachments from certain people and doing something with them.
At the end of your first flow, as suggested, you capture the email and message ID sent in step 3. Use the Get Emails action, filtered on the recipient of the sent mail, maybe the subject to be sure, and set Top value to 1 to get just the most recent email. From that, you can capture the message ID of the message you just sent.
Since you are using Sharepoint, a logical place to save the email and messageID might be a Sharepoint list, either existing or one you create just to 'log' your emails.
The second flow starts with the Outlook trigger, with the option set to filter emails with attachments. No, you can't filter on the email alias of the sender in this case. In my flow, I first check to see if the Sender is on the list (I use dataverse Contacts, you'd use your Sharepoint list and the Get Items sharepoint action.) In your case, you might be able to get away with just checking to see if that MessageID is on your list.
If it's on the list, now you process that attachment. As noted, you'll use the Get Attachment action, and remember you may get more than 1 attachment, so the rest of your flow will be nested inside a 'For Each' loop. The MessageID value you already have.
One piece of learning: check the file type of each attachment -- if it's a graphic, for example, it's probably not what you were looking for, even if the messageID is a match. Or maybe it is! (I have a regular user who has 3-4 graphics in her signature block, and I ignore those.) One way to get the file extension is this expression, in a Compose:
last(split(outputs('Get_Attachment_(V2)_from_known_user')?['body/name'],'.'))
If OK, then save the attachment to the Sharepoint library. The filename and content of the attachment are in two fields returned by the Get Attachment: body/name and body/contentBytes.
A bonus round idea: in your Sharepoint list, you might capture a status like "sent/responded" so you can tell from looking at the list...
Best -- Stew