In the last update, I found that the Raspberry Pi USB device boot doesn't like waiting, and with some small changes to usbboot was able to prevent any of the nodes from timing out when powered up all at the same time.
Now there's another problem: at random, usbboot fails to send the first stage "bootcode.bin" to the Pi Zero, which causes all future transfers to that Zero to fail until it's power cycled. I spent a couple of late nights trying to figure this out. Is it because the ROM bootloader has some other timing constraint (not sure)? Is there a signal integrity or power problem with my board (maybe)? Are the hub ports going into a low power mode, angering the ROM bootloader (nope)?
The only thing I'm sure of that fixes it is a power cycle.
So in the spirit of inelegance that defines this project, I modified usbboot to cycle power on any slot that fails on a transaction involving bootcode.bin.
And it's not that inelegant either. Because I'm using the USB standard for in-band power control of hub ports, I can traverse up the USB tree from the current Pi's USB device that failed to find the hub. Once I have a handle for the hub, I send a message to the hub requesting that power be turned off and on to the Pi's port. When the Pi resets, it re-enumerates on the USB bus and is detected again by usbboot.