Update now means that the device will perform the update in the next five minutes.
With "schedule an upgrade" you can plan the upgrade up to 30 days in the future.
As far as I know, there is technically no difference between scheduling it via API and Dashboard.
The only difference is, that you can schedule it via API precisely on the minute. With the dashboard, it will schedule all templated networks over a window of multiple hours, depending on the count of networks inside the template.
What we did was:
Step 1 Scheduled the firmware update for the template 29 days in the future via Dashboard
Step 2 Rescheduled every single network of the template to a specific time
Yes, at least all networks started the upgrade in a window of 10 minutes.
But to be safe you should define a maintenance window of around 30 to 60 minutes, as in my experience some devices take a lot longer than 10 minutes to upgrade.