For some reason I've never been able to make this upgrade feature work either. Once, I think, it worked flawlessly for me. Every other time- I'd get a nice little error that would go something like:
Could not copy file: /blah/wp-content/upgrade/wordpress-2.tmp/wordpress/wp-comments-post.php
I've tried all the standard tricks; recreating wp-content/upgrade and setting permissions, etc. It would be nice to have this upgrader say why exactly it failed (aren't detailed error messages actually helpful?)
Anyhow, this trick worked for me. I ssh'd in and ran this (totally cheating, I know):
watch -n0.1 "chmod a+rwx -R /blah/wp-content/upgrade/"
Then I initiated the upgrade and -- the upgrade actually worked. It seems like the ftp method of uploading forgets, inadvertently resets, or otherwise assumes way too much in ways of permissions.
DISCLAIMER: don't follow this trick unless you know what you're doing. Seriously. This resets all permissions recursively every 0.1 seconds.