Thanks to Victor's help, all this required was some tuning on the NetXMS server. Turning on parallel processing and increasing the Discovery.BaseSize from 1 to 8 seems to have helped immensely. The root cause seems to be the large number of subnets we had on our Default zone. It couldn't keep up with the discovery process for subsequent zones.
I am now having an issue with discovery filters. We want to only add devices that have SNMP enabled or the Agent installed. However, when we turn these filters on in 3.7.116, nothing gets added. If I restrict it to active scan only on a single test IP, and then turn off all filters, the device with agent gets added as expected.
If I check debug logs on the proxy agent, it does ping the device but never seems to try to connect via SNMP or Agent.
What it looks like is that if the filter is set to SNMP or Agent only, it only attempts a ping scan and since it hasn't seen it so far as an SNMP or Agent device, it doesn't bother scanning (a Catch 22).
-Zeb