Please explain how these two statements are consistent. If Microsoft had made the end-of-life sooner, then they'd have dropped support for .NET 3 from XP and we'd have just had this conversation earlier. If they kept support for .NET 4.5, then you'd just come back and complain when they make this decision for .NET 5.0 or .NET 7 or whatever.
There's going to be an end of life for every product at some point, and people who have hammered their business into relying on XP living forever are going to get mad whether it EOLs in 2008 or 2058. I frankly can't see how you can do better in the industry than seeing Microsoft give you twelve years of non-breaking changes to XP including basically a free major version upgrade (SP2).
Find me a single company with a better EOL policy, or come up with a better way that Microsoft can kill XP, and maybe I'll take you a bit more seriously. Most people (i.e. >75% of the market) have ditched XP. If you're in the last quarter, it's time for you to move on.
Let's not forget that most of that remaining 25% are corporate environments that won't be running your software anyway, so it's not like it's even 25% of your customers.