The biggest hurdle comes from the community and the source of the systems. There is an arrogance about Linux users that (I'm better than you) that doesn't come along as strong when needing help from others as it does in other operating environments. It also comes from distributions not picking a "white horse" and sticking with it, not providing a clean migration path from to the other which is the effect of the //free// nature of the OS.
Take sound drivers as a simple example. There are several infrastructures for sound control and functions, because "linux" is made of distributions who do their own thing this causes people to have to have to many choices, there are large swaths where things "don't work" as you would expect. You take the forums to find a solution to find that the forum goes back 6 years. With out-dates posts relative to your problem but not a solution that's applicable. It might have been discussed recently but burried, you get the response "Search!" or RTFM!. Sorry, I wanted to use my microphone, not invest 4 hours into getting my microphone to work.
Then when I find the solution I have to edit asound files, maybe recompile a module, maybe update dependencies, maybe change a library, This is stuff that all truly makes it a really tough sell.
When you find a problem, that truly kills a function, the solution to //fix it yourself// is good for some but certainly not all. Consumers want it to work, they don't want to learn to write code to fix something or get it usable. And at the same time even among those of us who //can fix it// we simply may not have the time to backtrack a very large program to add that much needed feature / function because it's not a project we are on. We have to learn that code tree from scratch and start working in the change. This makes it impossible.
Ubuntu has done good with their LTS version's in my opinion, but I think the question is going to be what //breaks// or stops working when the next release comes out. Knowing today that if I leave LTS to the normal current version I lost features and found bugs that broke atleast 25 *KEY* features for me. This is not something I can willfully recommend to anyone who isn't wanting to be involved in every aspect of their computer.
Take sound, I want a voip client, ok this one uses pulse, this one uses asound, do I have them them both? Do I have one and not the other, does the program conflict when I have both of them installed... again, not consumer friendly, Linux is a popularity contest, who does it //better// right now... and if you aren't willing to wipe and upgrade to the next greatest thing you quickly may find that your desired application is left in the dust.