Thanks for getting in touch! Currently we do not have any built in method for achieving what you are after here. We had a chat about the idea of a single variable which could return this kind of value. However, it looks like it would actually be a fairly complex thing to achieve on our end. I think the method you are using of writing custom code in your email step and calling variables from each package step is the best method for achieving this at the moment.
We do have a system variable which will resolve to all machines targeted in a deployment. The drawback of this variable is that it is not specific to package deployments and returns ID, not Name. As an example, a script step against a target you are not deploying a package to would be recorded with this variable.
This probably does not help you, though I thought I would mention it anyway.
I’m sorry I could not provide a more helpful answer on this one. If you have any further thoughts or questions here, please let me know.