I finally figured out what I was missing. I needed to create new Smp and USM instances, add the USM to SecurityModels, and then Snmp.listen() before calling Snmp.discoverAuthoritativeEngineID().