I just came across a situation where on upgrading 3 plugins on WordPress the system got stuck on the first plugin upgrade and after 30 secs had not moved at all. This was the first time it had happened to me and I have upgraded WP sites, plugins and themes hundreds of times so it is rare in my experience.
So it took me by surprise and also I didn't have a clue what to do. I came across this post on the WP forums that was the perfect answer:
You basically need to delete a file called .maintenance in the root of your site's web folder, via FTP or a web file management system that allows you to see and delete files starting with a dot: ".maintenance"
For example in CuteFTP you would need to select "enable server side filtering" by clicking on the filter button in Actions (right click on site properties of the site to get this) and add the following command "-a" as a filter (without quote marks).