We define email success as either clicked link or converted (clicked specific link using a constraint) for email campaigns. We use trigger campaigns to listen for delivered, opened, clicked or unsubscribed and then update the program status accordingly using Choices - remember only the first matching choice applies so you need the choices in reverse order. Set flow to run every time.
In webinars we count success via registered/attended. The email invites sit in the webinar program - so NOT a separate program, so we don't have the email program statuses. We have the webinar statuses. After form fill out ot register we change the status to Registered, then after the webinar the GoToWebinar integration we use updates to attended/no show. We then send follow up as a batch after this to make sure we have set up the replay before the email goes. These emails do not change status either.
For us the email is part of an overall program to drive registration - we don't report at the level of which program (e.g. web or email) drove the registration. We get a good read on this from email link performance reports if we need to.