After trying a number of things, I found the solution. It turns out, the zadig.exe installer by default installs the WinUSB driver (which is the native Windows 8 way of talking to USB.)
However, avrdude wants to use libusb-win32, which I can choose to install instead. Uninstalling the driver for the programmer, and re-installing the driver as libusb-win32, solved the problem and Arduino IDE / avrdude now finds the device.
I couldn’t really find this documented anywhere obvious – the way I stumbled across it was in a mention about using avrdude on Windows on some other website, where in passing it said “avrdude uses libusb.”