The right approach for Google to solve the update problem would turn the current Android license philosophy completely around. The solution is to go GPL (optimally GPLv3), and be as pedantic as Debian is. No binary drivers allowed, no locked boot allowed, all updates including kernel updates go through a central repository.
Customization/branding *is* allowed. But this should go through well defined interfaces, and a branded distribution of Android (or any other Linux) must be created in such a way that "unbranding" is a piece of cake - just drop the brand-specific packets.
The ironic thing is that while Google has an Android branding program, the only way to get plain vanilla Android (other than Nexus) with a high likelyhood of updates is to buy some cheap white-box stuff from China. They use the test-keys to compile Android (i.e. no release-keys from Google, i.e. completely uncontrolled), they use CPUs like Allwinner A10, which have GPL compatible drivers for everything, and there, it just works. There is a bit of lag, because they don't have many resources allocated to software and testing - probably just one lonely guy or so, but it's not nearly as much as with the branded parts.