Just some idea (untested): Use a script as "sendmail" program for mutt which - submits the mail but tells the MTA to only queue it, - gets the info about the queued msg from the MTA when it accepts the mail, - schedules a queue run for that item at the desired time. and make sure the MTA does not run the msg any earlier.
For sendmail: - use -odq - the script needs to parse the output 250 2.0.0 $QID Message accepted for delivery and get the "queue id" $QID. - use at to schedule sendmail -qI$QId - either do not run the queue at all or put your submitted mails in a "queue group" which is not processed by default. For details: see man sendmail and doc/op/op.* Other idea: use quarantining (also see doc/op/op.* from sendmail for details).