Business Customers are given the option to set the firmware update time in the Admin panel:

I take it the default 2:00-4:00 am default is probably what the residential firmware uses, with the option to change it hidden away/not available.
Could probably optimize the firmware upgrade process to minimize downtime if this hasn’t been done already, download the update, write it to a secondary partition, migrate over any needed settings, then reboot. Only downtime would be during the reboot.
Customer owned modems will get their firmware updates whenever the CMTS decides to push them out. I have a feeling XB gateway’s update the firmware on their own (are connected to their own update server backend), without traditional CMTS involvement like customer owned modems have to.