Ok, so I figured out a method which works, although it requires two USB controllers. Controller A will become the primary controller in the end, and controller B will be used as an intermediary.
- Plug both USB controllers into a PC, run two instances of the PC Controller software, and configure one for each of the corresponding virtual serial ports.
- Join each USB controller to the Hubitat Z-Wave Mesh (Put hub into inclusion mode, press Learn on PC Controller). They will both be Inclusion controllers (secondary) at this point.
- Press Shift on controller A, and Learn on controller B. This will make controller B the RealPrimary at it's current node ID (i.e. not node 1).
- Turn off the Hubitat
- Press Reset on controller A
- Using controller B, select node 1 and press IsFailed, then press Replace Failed
- Press Learn on controller A. Now controller A will be node 1, and will be joined as a secondary Controller
- Press Learn again on controller A, and press Shift on controller B. Controller A will now become the RealPrimary, and controller B will go back to being secondary.
Now you have a static controller (A) at node 1 with the full Z-Wave network copied over from Hubitat. To get it to function properly in another system (e.g. HA) you just copy over the security keys, and everything works.