Update: not so sure it's the FTDI EEPROM now. An old Windows 10 laptop can see both FTDI devices OK. Programming the board still fails, hangs in the same way.
I've found that I can't program a BIT file from a USB stick. It's like the board is damaged. I will approach support and report the outcome here for future reference.
Update 2: false alarm. Some combination of Windows 11 updates, migration to Vivado 2023.1 and maybe filesystem corruption has resulted in bad BIT files that don't program correctly. Rebuilding from source produces good BIT files.