there is no reason the server files couldn't have been copied in preparation, and then copy only the player data files on the day of maintenance. player data is miniscule and copying all the millions of accounts shouldn't take more than a few hours at the utmost.
File locking prevents doing something like this. If a file is currently in use by a process that won't let it go, you cannot copy the file at the same time. This is especially true with databases - SQL Server databases are two files, a data file and a log file. If SQL Server is running you cannot just 'copy' the two files. It doesn't really work. You can make a backup and move it, but the file begins to age as soon as the backup finishes if the original is still in production use. And because the databases are just two files, moving just the records that have changed after the backup isn't as easy as it sounds without a record comparison.
As I know from lots of experience, the goal of server maintenance is always to minimize downtime, but some things you just can't avoid and they do take time to complete correctly. Migrating from one server to another is one of those things you just have to set aside time for unless the application was written in such a way to make it migration proof.
Trust me, there are very few applications that are designed that way...