This is a 2-part question. Part 1 asks why Android phones do not get the newest update right away, and has been answered adequately by the other answers. Part 2 asks why older phones often never get the newest update, and has not been answered yet.
As LeBeau says, there are other corporate stakeholders besides Google. Google only creates the new versions, and, besides the phones it directly creates, like the Nexus line, it does not get much say over whether and when the others put them into the phones. Also like LeBeau says, all these other stakeholders have to learn the new version before they can implement it. This is why the phones get new versions later, and why certain phones, like the Nexuses, get the versions before anyone else, because Google has already learned the new version.
As for part 2, the hardware makers want us to keep buying new phones every couple months, right? Otherwise, how will they keep all that dough rolling in if we keep using our old phones? They'd be in the same position the computer companies are in: with storage and RAM enough for any purpose, why buy any new hardware? The answer is to stop updating old phones, so if we want the newest features, we have to get a new one. Google probably doesn't do this as much, as it is already selling you Android, so why does it need to sell you phones, but it probably does it a little bit. The network carriers, for their part, probably help with their draconian rules like preventing rooting (or else you void your warranty). This is why, as you say, "
a July 2010 android is basically a paperweight".
As for your comment about improvements being "mainly userland", I don't know how all that works, but I'm sure it's not that simple. The upgrades may be in software, but not all software talks to the user. Plus, the hardware makers put "skins" on our phones, so we do not see the inner workings, and it's likely that when they finally upgrade to the newest version, they put some new stuff in themselves, so that an HTC One phone at Android 4.2 is different from a Samsung Galaxy SIV phone at Android 4.2. Probably either HTC or Samsung throws some new features out to put in 4.3, and you do not even notice they did it. Then, when let's say the HTC One does not upgrade to 4.3, but the HTC Two does (I'm making this up), you are forced to get HTC Two to get (some of) the new features of 4.3, as well as some features of 4.2 you didn't get with HTC One. I am not certain this happens, but it is normal business procedure, so I would not be surprised.