Is it possible that there is something in sendmail which is attempting to verify all recipient addresses in an email?
The MTA must find the mailhost for user@domain by looking up the MX record for the domain.
I'd like to disable such checks on all outbound
That approach does nothing to solve the root cause. Instead of trying to force email out you could check the address (or at least the mailhost) to send to is available by whatever means you have before submitting to the MTA. Next to that you could consider sending email in more batches with smaller amounts of addresses per email. This should spread the risk of a batch getting stuck for whatever reason and if one does you could test MX availability with something simple like (infile only contains "user@doma.in" formatted lines):
Code:
grep @ infile|cut -d "@" -f 2|sort|uniq|while read domain; do echo "/mx ${domain}"\
|echo "${mx}: $(sendmail -t -v -bt -Lsendmail_mxtest 2>&1)"; done|grep "returns.0"
The "grep "returns.0"" removes output for any domain that has an MX record. There's more reasons it can get stuck but apart from tuning .cf timeout variables there is, as far as I know, not much you can do about that.