The updating issue is really something they need to sort. Let Google control it. Do it in one go. For everyone.
What Tom said.
Not possible, remember that Android is a generic term. At it's highest level there is mostly compatibility between different flavours of the same version, but because Google were dumb, they didn't lock it down anywhere near as much as they should - so you get fragmentation. At the low level, there is effectively zero compatibility, it's SOC specific, so you can't just build a generic kernel because it's specific to the hardware that it's running on, it's down to the manufacturers (or enthusiastic home brewers) to maintain ports.
The problem consumers have with Android devices is that once the manufacturer starts selling it, that's it - there's no further revenue streams to be made from the device, so why spend huge amounts of time and money porting the latest version to old devices? It makes zero commercial sense - what does make sense is to move onto the next device because that's where your next set of revenue is coming from.
Compared to another well known phone manufacturer who has their own app store, they continue to make money from old devices through application sales and therefore porting major version upgrades to older hardware makes sense because they can still produce revenue from sales of applications where new API's make for improved applications.