Well all the windows phones devices so far has gotten every update (nodo, mango, tango, 7.

and the ones that were delayed were usually a carrier thing. Windows Phone 8 is an entirly different thing as its honestly a seprate os than windows phone 7 and is using an entirely different kernal. From what I understand it would be possible to put wp8 ona wp7 machine but it would take a lot of time and the 7 device wouldn't benefit that much. But microsoft is planning to fix that with bupassing the carriers with. Updates from now on like apple.
Google on the other hand is a more diffcult thing. It has a lot with the carriers not really giving a **** with giving the user timely updates. They in all honestly would rather you get a new phone entirly. Another big thing is most oems skin android with whatever flavor they have and must also update that as well as the os. Plus when updates do come they are usually late as hell also the lazy oems don't take time to optimize their **** for phones. My G2 was supposed to get ICS and its even stock but for what reason. It didn't even though my rom works just fine. Android also allows oems to do whatever the hell they want with super crappy specs to the uber big specs that no one needs use for.
Microsoft has avoided that by having a set baseline set of specs where each phone must have at least certain specs and then can change them. This ensures that the OS runs the same on every device and is always buttery.
Take a looks at the specs of most windows phone devices. They are just using dual core (like ios thoughI think the ipad is quad core) while android has this odd obsession with specs but the OS nor apps are optimized for this.