> I looked at the USB 3 spec and couldn't find any guarantee that there was any number of devices you could plug into hubs and have it work.
It's a controller and/or BIOS limitation[1][2]. The complication is that while USB devices can be addressed using 7 bits = 127 devices total, each device usually creates more than one endpoint, and each endpoint consumes controller and system memory resources. The BIOS allocates the memory, and the amount is apparently hardcoded (guess a setting would be too difficult). If you have many USB 3 devices with a lot of endpoints, that memory runs out quickly.
In addition, each endpoint reserves some bandwidth, so the uplink needs to be able to provide that bandwidth.
[1]: https://community.intel.com/t5/Embedded-Intel-Core-Processor...
[2]: https://borncity.com/win/2019/09/06/windows-10-not-enough-us...