So after some code diving and whatnot, I have arrived at the source of the problem, which in turn leads me to a new problem.
On my system, I have System > Advanced > Miscellaneous > "Use memory file system for /tmp and /var" checked. /etc/resolv.conf is a symlink to /var/etc/resolv.conf, and because my /var is mounted from /dev/md1, when pkg goes to chroot into the other partition in order to apply the upgrade, there's nothing in /var/etc and the resolver can't figure out what DNS servers to use.
So now I arrive at my other problem. I can't actually uncheck that value. I unset it, the machine reboots, and it's checked again when I log back in. According to my configuration file, it's not set at all. I have to assume that this is because I'm using the embedded build, since I'm running off a USB stick.
I have to assume then that this problem affects all embedded users. I'm not sure how to proceed here, short of maybe putting in a hack into the upgrade script to copy the contents of /var into /tmp/nanobsd_upgrade/var before it starts the upgrade.