The cron arg usage looks weird. The insert id will return garbage by the time your function is called.
By the same token, I believe better schedule it always, with the id argument, on insert, if this if for logging. Else you’ll be throttling your logs, basically.
Lastly, are you sure that wp_mail() is working?