I have an updated apk - tested successfully on various devices and simulator instances - with the following manifest:
In the end, I removed the upgrade ... which ended up removing the upgrade from the queue and unpublishing v1.0. I quickly republished v1.0 (which was still present in the Marketplace), then posted the upgrade again.
This time it worked. No need to bump versionCode up to 4. Icon was visible too. Didn't do anything differently.
Update published. Yaaaaay!
File this under unsolved mysteries for now. Leaving this here in case others run in to the same problem.
Update: See Nate Bross's comment to the original question. Possibly some Marketplace server hiccups. Nothing official from Google yet, but it looks like I'm not the only one who ran into upgrade issues today.