The fixes are simple, but they all share one problem: they cost money. Hardware orgs are almost universally run by the most penny-wise pound foolish people imaginable, so that problem is completely insurmountable to them.
There's other issues too (e.g. upstream vendors don't like upgrading and charge absurd amounts of money for it), but the main problem is simply a lack of institutional priority to do the work.
It's not foolish, it's shortsided. At the scale major OEMs operate, even a dozen engineers per device generation would be a rounding error.
The biggest question is : why does it take so much efforts to design an upgrade ? Unfortunately Google never made it mandatory for chipset/hardware designers to have an abstraction layer (similar to BIOS/UEFI/ACPI/system tables) that would make a single Android kernel and OS install and work on every devices... (And I have criticized Microsoft a lot for many things, but I have to acknoledge that they have an amazing backward-compatibility track record, even for device drivers, while Linux has its stable_api_nonsense policy...)
The Surface Duo was supposed to be a Windows 10X companion device until at the last minute they hired a firm (Movial) to port the metal to Android. Halfway through the port they brought on that entire division as MS employees and that's who basically was running the Android porting shitshow.
Ask differently how long was the original Apple Watch supported ? Or the original iPad ?
I don't think any of them had more than 2 or 3 years of suport as the hardware radically changed in the next revisions. Faulting Microsoft for failing to support a first gen innovative hardware concept for more that a few years is kinda harsh.
Apple Watch 1 had five years of OS upgrades. Watch OS 6 was the first to drop Series 1.