In reply to vesati.

The way WordPress actually handles that .maintenance file should prevent that from being an actual issue for very long.

What WordPress does is to put PHP code into that file. It writes it to contain a single variable, named $upgrading, and it sets that variable to a time value of when the file was created.

Later, when WordPress checks for the existence of the file, it actually includes the file, thus loading that variable. It then checks to see if the time in the $upgrading variable is more than 10 minutes old. If it is older than 10 minutes, then it ignores the file and continues on as per normal.

So even if the file is left behind for whatever reason, it doesn't stop the site from displaying for more than 10 minutes, max.