Oh, right—mode *is* target_mode, when you think about it.  But since there's no concept of "previous_mode", there's no way to tell from "mode" alone whether or not someone is upgrading or simply doing a brand new registration.

Any thoughts on the cookie vs DB architectural decision (or know who I should ping to find out?).  My instinct is that db makes more sense in this instance, since I tend to think of cookies as things that only affect the client, whereas this is a change to the database if the upgrade goes through—but I could be totally wrong haha