The solution to fragmentation: Paid updates
Sadly, manufacturers have no economical incentive in supporting old devices. It even hurts sales of new devices. This is the hard truth that creates the problem of older devices never getting the latest Android updates. The solution: manufacturers should sell OS updates, just like how OS updates work in the PC world. It's a compromise that would leave both manufacturers and consumers happy.
"Shouldn't Google get the money for new OS:s?" Sure, but Google isn't selling Android. Instead you're paying the manufacturer for the work required to get the latest OS running on your phone.