However most BIOS initiates the harddrives for lots of reasons (check if it is bootable, initiate SMART, present sizes for legacy OSs) and this takes time, mostly as most BIOSes is single threaded and does this one bus at a time, often also in a hardcoded order, not in the order of which the devices are ready/spun up.
And this is not waiting for spin up, as if I have disks that does not spin during reboot (because power-saving OSs has turned them off) then they are spun up first when the BIOS tries to initiate them (which comes after USB-init).
In some BIOSes (most often OEMs, or laptops) you may see that the BIOS can start REALLY fast, but if it detects a change in the hardware, then the first boot can be much slower. This is because these BIOSes saves most of those values, and during boot does a very limited initiation, only enough to detect hardware-changes. If no changes detected, then it skips on to booting.
I have in another of my desktops one of those BIOSes, and it is REALLY fast if this is enabled in BIOS, unless I use AHCI/RAID since those are running off external BIOS-code and are not saved in nvram. In that case everything but disk-initiation is so fast my LCD does not have time to power up before the AHCI-bios.