I was curious if much had changed with the transition from ADNS that Werner mentioned, but sadly it is still pretty slow. I'm not really sure how to interpret the errrors below; I'll include a version with debugging info below in case it's useful. For what it's worth, I also tried standard-resolver, and it was about 10s faster, but still slow (20s delay vs. 32s).
,---- | Jul 11 20:56:27 rocinante dirmngr[5063]: no CRL available for issuer id E0DD1D7C31AA482EDCCE895CDD920A3AF9857121 | Jul 11 20:56:59 rocinante dirmngr[5063]: certificate cached | Jul 11 20:56:59 rocinante dirmngr[5063]: Note: non-critical certificate policy not allowed | Jul 11 20:56:59 rocinante dirmngr[5063]: error getting authorityKeyIdentifier: No data | Jul 11 20:56:59 rocinante dirmngr[5063]: issuer certificate not found: No data | Jul 11 20:56:59 rocinante dirmngr[5063]: error checking validity of CRL issuer certificate: Missing issuer certificate | Jul 11 20:56:59 rocinante dirmngr[5063]: crl_parse_insert failed: Missing issuer certificate | Jul 11 20:56:59 rocinante dirmngr[5063]: crl_cache_insert via DP failed: Missing issuer certificate | Jul 11 20:56:59 rocinante dirmngr[5063]: command 'ISVALID' failed: Missing issuer certificate `---- output from --standard-resolver --debug-level=basic: ,---- | Jul 11 21:05:12 rocinante dirmngr[5063]: SIGHUP received - re-reading configuration and flushing caches | Jul 11 21:05:12 rocinante dirmngr[5063]: enabled debug flags: ipc | Jul 11 21:05:12 rocinante dirmngr[5063]: permanently loaded certificates: 167 | Jul 11 21:05:12 rocinante dirmngr[5063]: runtime cached certificates: 0 | Jul 11 21:05:12 rocinante dirmngr[5063]: trusted certificates: 167 (166,0,0,1) | Jul 11 21:05:12 rocinante dirmngr[5063]: DBG: chan_5 -> OK | Jul 11 21:05:12 rocinante dirmngr[5063]: DBG: chan_5 <- [eof] | Jul 11 21:05:12 rocinante dirmngr[5063]: handler for fd 5 terminated | Jul 11 21:05:18 rocinante dirmngr[5063]: handler for fd 5 started | Jul 11 21:05:18 rocinante dirmngr[5063]: DBG: chan_5 -> # Home: /home/bremner/.gnupg | Jul 11 21:05:18 rocinante dirmngr[5063]: DBG: chan_5 -> # Config: /home/bremner/.gnupg/dirmngr.conf | Jul 11 21:05:18 rocinante dirmngr[5063]: DBG: chan_5 -> OK Dirmngr 2.1.21 at your service | Jul 11 21:05:18 rocinante dirmngr[5063]: connection from process 6228 (1000:1000) | Jul 11 21:05:18 rocinante dirmngr[5063]: DBG: chan_5 <- GETINFO version | Jul 11 21:05:18 rocinante dirmngr[5063]: DBG: chan_5 -> D 2.1.21 | Jul 11 21:05:18 rocinante dirmngr[5063]: DBG: chan_5 -> OK | Jul 11 21:05:18 rocinante dirmngr[5063]: DBG: chan_5 <- OPTION audit-events=1 | Jul 11 21:05:18 rocinante dirmngr[5063]: DBG: chan_5 -> OK | Jul 11 21:05:18 rocinante dirmngr[5063]: DBG: chan_5 <- ISVALID E0DD1D7C31AA482EDCCE895CDD920A3AF9857121.029082 | Jul 11 21:05:18 rocinante dirmngr[5063]: no CRL available for issuer id E0DD1D7C31AA482EDCCE895CDD920A3AF9857121 | Jul 11 21:05:18 rocinante dirmngr[5063]: DBG: chan_5 -> INQUIRE SENDCERT | Jul 11 21:05:18 rocinante dirmngr[5063]: DBG: chan_5 <- [ 44 20 30 82 05 da 30 82 03 c2 a0 03 02 01 02 02 ...(982 byte(s) skipped) ] | Jul 11 21:05:18 rocinante dirmngr[5063]: DBG: chan_5 <- [ 44 20 11 6e 75 72 2d 61 62 2d 73 61 6c 40 67 6d ...(564 byte(s) skipped) ] | Jul 11 21:05:18 rocinante dirmngr[5063]: DBG: chan_5 <- END | Jul 11 21:05:18 rocinante dirmngr[5063]: checking distribution points | Jul 11 21:05:18 rocinante dirmngr[5063]: fetching CRL from 'http://crl.cacert.org/class3-revoke.crl' | Jul 11 21:05:19 rocinante dirmngr[5063]: inserting CRL (reader 0x00007fc6700116b0) | Jul 11 21:05:19 rocinante dirmngr[5063]: update times of this CRL: this=20170711T235454 next=20170718T235454 | Jul 11 21:05:50 rocinante dirmngr[5063]: DBG: chan_5 -> INQUIRE SENDCERT /CN=CAcert Class 3 Root,OU=http://www.CAcert.org,O=CAcert Inc. | Jul 11 21:05:50 rocinante dirmngr[5063]: DBG: chan_5 <- [ 44 20 30 82 06 08 30 82 03 f0 a0 03 02 01 02 02 ...(982 byte(s) skipped) ] | Jul 11 21:05:50 rocinante dirmngr[5063]: DBG: chan_5 <- [ 44 20 4a 30 33 30 31 06 08 2b 06 01 05 05 07 02 ...(592 byte(s) skipped) ] | Jul 11 21:05:50 rocinante dirmngr[5063]: DBG: chan_5 <- END | Jul 11 21:05:50 rocinante dirmngr[5063]: certificate cached | Jul 11 21:05:50 rocinante dirmngr[5063]: Note: non-critical certificate policy not allowed | Jul 11 21:05:50 rocinante dirmngr[5063]: error getting authorityKeyIdentifier: No data | Jul 11 21:05:50 rocinante dirmngr[5063]: issuer certificate not found: No data | Jul 11 21:05:50 rocinante dirmngr[5063]: error checking validity of CRL issuer certificate: Missing issuer certificate | Jul 11 21:05:50 rocinante dirmngr[5063]: crl_parse_insert failed: Missing issuer certificate | Jul 11 21:05:50 rocinante dirmngr[5063]: crl_cache_insert via DP failed: Missing issuer certificate | Jul 11 21:05:50 rocinante dirmngr[5063]: command 'ISVALID' failed: Missing issuer certificate | Jul 11 21:05:50 rocinante dirmngr[5063]: DBG: chan_5 -> ERR 167772345 Missing issuer certificate <Dirmngr> | Jul 11 21:05:50 rocinante dirmngr[5063]: DBG: chan_5 <- [eof] | Jul 11 21:05:50 rocinante dirmngr[5063]: handler for fd 5 terminated `----