as for 4). The mail tracking package already does part of that. At least it allows you to store an e-mail, the recipient, sending date and the object_id (why the e-mail was send in the first place). The resulting list is searchable and can be limited to a data range.
Which reminds me to change forums to call acs-mail-lite::send (or complex_send, which supports multiple mime types) with the "no_callback_p" switch, if it is using acs-mail-lite in the first place...