To be honest all of them are either far-fetched or have corresponding counter-arguments. Pieces of HTML as well as messages (which often have single quotes) should mostly reside in script-blocks or separate files and making extra escape for a few strings in the whole app won't work one's fingers to the bone. After all, it's 2015 now, we can use es6 template strings!
There's a misconception I'd like to point out here: "(single|double) quotes eliminate the need to escape (double|single) quotes". Nope! Most strings can have both types:
'27" apple cinema display',
"levi's jeans". Message can have both single quotes as apostrophe as well as quotes for
Press "escape 'em all" button to achieve the desired effect. This is mostly related to generation of HTML as strings, which happens more often on back-end, but nonetheless.
submit and so on. Semantically those can be considered as an enumeration. On the other side there are strings where the number of combinations is virtually limitless. Two things, which come to mind are inline text resources (logging messages are OK in that role) and mini-templates.
Another interesting idea by @medikoo how to tap into having two types of quotes in the language from the article I mentioned above:
Single quotes for internal strings and double for external.
So mostly people prefer what I'd call "cheap-and-dirty" solution: use only one type to reduce cognitive load, but this isn't the only answer to this question. What do you think? Will adding semantic to different types of quotes and using both of them simultaneously pay off?