Resuming work today after travel…
The testcase I have been using with the automated QEMU system had been having trouble getting a DHCP address on the gPXE client some of the time, and this was reoccuring more often in my current tests, so I created a new snapshot, being sure that the server was fully started and ready to accept requests before taking the snapshot. Now it works reliably, with the client getting an address from DHCP every time.
I also encountered a problem where the VM snapshot would take longer than the given timeout (5 seconds) to load with a cold cache, so I increased the timeout for QEMU commands from 5 to 15 seconds: commit.