In fact, maybe I'd make a way for a degenerate, once-off special List to be made for just this event whose purpose is to subscribe exactly one User to exactly one Message, send just that mesages (i.e. no subscription messages at all) and then throw itself away.
Actually, it wouldn't be a special List at all: the controller/dispatch logic would respond to a request to Resend That Message to This User and create a new List object as I just described for just that purpose. The only special things would be that you would have to teach the List how to not send any subscription messages and to be self-deleting once the Message is sent. It need not even be saved to the database. :-)
My recommendation is based on the fact that all the knowledge you need about sending a Message to a User is *already* in the List object.
Wade.