The reliability issues are bordering on a dealbreaker for me at this point. I've had lots of Microsoft hardware; maybe I'm just unlikely, but the only thing that didn't need factory service was an Xbox One. I'm not a Microsoft hater by any stretch, but having to get a Zune 80, Surface 3, Surface RT, and Xbox 360 factory serviced really soured me. I've had several Android and Apple devices at this point and none have needed factory service.
Windows 10 still isn't tuned well for mobile, and the few parts that are just aren't generally reliable. I'm actively working on a UWP app right now and the problems are endless - issues with resizing windows, crashing when themes change (built in apps like Maps have the same issues so its not my code), broken vector icon rendering, etc. The whole thing is based on COM, which tends to lead to leaky abstractions when exposed through higher-level APIs. It is hard enough to make high-quality software on Windows that developers often fail and it leads to weird quirks. Even with traditional desktop apps, getting things like maximize behavior right with customized windows is actually very hard (see Slack, Teams or VS Code on a high/mixed DPI setup).
Here's a small taste of what a modern Windows developer gets to deal with, to accomplish the simple task of displaying a vector icon: https://github.com/microsoft/microsoft-ui-xaml/issues/1494