We did something similar using event handlers to push the error messages to a table.
The start time of the package was logged in the same table (as was the end time).
We then have a process that looks at the table, looks for any error messages after the logged start of the package and sends those out in an email.