Hi,
when you say you can't have downtime are you talking about the publish tier or author tier? Usually it is important to avoid downtime on the publish tier.
Where is most of the time taken if you are saying it takes a day to do an upgrade?
There will be downtime required on the authoring tier, precisely because you cannot make changes to content while the upgrade is happening. You must shutdown the repository, even if you took a copy of the instance and performed the backup while the old author was running, It becomes difficult to sync any changes made from the old system to the new system, packages could be used, but the content structure could be changed during an upgrade and packages won't convert the old content to the new format, you would also lose versions in a package. There is also application state that can't be transferred, for example running workflows or jobs.
If you have one author and at two publish instance, what you can do is to do a cold backup of the author and one of the publish instances and then perform the upgrade on these instances. This means your publish tier can continue to server traffic while the upgrade happens, once the upgrade is complete and has been tested you can bring online the new publish instances. Continuing to have authoring changes while the system is upgraded is difficult.
Regards,
Opkar