When this happens it really does come down to either a JavaScript conflict/error stopping the AJAX processing – or – just sometimes it can be something hijacking the http request and sending extra parameters which then upsets the return value so SP doesn’t recognise the return codes. We have seen this with a security plugin for example requesting some sort of authentication with each http request.
The former is the more likely however. If you know how to use the script console that now comes with all major browsers you can check for errors when you try and start the upgrade process.
If not then personally I would recommend putting the site into maintenance mode – switching first to the WordPress default theme and trying the upgrade with that. Is still no luck then deactivate plugins that may be running javascripts on the admin side of things. Try it again after each one. All being as it should be then eventually it will run past the script error and complete. and you will know what plugin is causing the problem.