Esperanto has the drawback of being a European language. Its grammar and vocabulary are overwhelmingly inspired by European languages, especially Romance languages. That's why your typical Frenchman or Spaniard can more or less decipher Esperanto, and so can highly literate English speakers (because the more complex English vocabulary is often Latin-based).
Sure, replacing English with Esperanto would be super-cool for French or Italian speakers. But why would a Chinese or Vietnamese speaker promote Esperanto rather than just learning English? To them, it's just a different form of Euro-speak, minus the enormous existing corpus (both technical and artistic) of English.
To have a snowball's chance in Hell of displacing English, a constructed language would need to be roughly neutral towards all people, or at least between Europe and, say, China. I know of no proposal that fits this criterion without being klunky, unnatural and just plain butt-ugly.