So I checked for update after getting wifi, update your firmware warnings. I made sure serial monitor is closed, only ONE project is open. I'm using the same cable that I upload sketches with which works very fast. It's been stuck on installing firmware and its still going... I see the LED pulsing on the board but... its been like 10 minutes.
SOLVED.... I had a macbook pro i do a lot of this on. That is where the firmware update kept hanging. I moved it to my PC and the firmware update worked. Must be an unfortunate bug in the IDE firmware update feature on mac. If it matters its an intel macbook pro, last fully loaded one before they switched to M chips.
Confirmed that this is actual an Intel Mac issue. I have a 2019 MacBook Pro (intel) that was experiencing this hanging. Work provides me an Apple Silicon MacBook Pro, so I thought I would try and upgrade the firmware on that machine. It worked, so it seems to be specific to intel mac's.
I am using a MacBook Pro (Retina, 13-inch, Late 2013), and as described in Use the Firmware Updater in Arduino IDE, if I close the serial monitor before running the update, it works correctly.
Connect the board to your computer and open Arduino IDE 2.
If the Serial Monitor is open, close it.
In the top menu bar, open Tools > Firmware Updater.