The difference between Persian and Farsi matters in english world because it is political. In english, Farsi doesn’t carry prestige, same way iran doesn’t carry Persia. But they do for those in iran. I’m not familiar enough with afghanistan to know first hand, but perhaps same can be said for Dari. I might be wrong though on this last one.
And in the end, in English it should be "Persian" and not "Farsi", that is where the actual move should be. How sad and historically wasteful if we started to do that to all languages, "deutsch", "zhongwen" or "elliniki" instead of German, Chinese and Greek
This is not true.
It happened after the 1979 Iranian revolution, when Iranians abroad wanted to call it Farsi out of cultural pride, using the same word in their own language, rather than Persian which is the "foreign" word for it (from Greek/Latin). It was literally reclaiming the name. Then the media followed suit out of respect. It was cultural sensitivity.
Today some non-Iranians and therefore groups like the UN prefer "Persian" because variants are also spoken in Afghanistan and Tajikstan, and Farsi is a reference to the Fars province of Iran, so Persian can be seen as more neutral. But then again, not many people complain about "English" being associated with England and not being neutral enough to Americans or Indians. So it's definitely complicated. But it's also definitely not about trying to diminish anybody's "prestige".
I think it just was a random occurrence / perfect storm in the US where some Persian speakers moving there didn't know there was an English word for it, and where the local population were more used to hearing names of unknown languages, and it happened to stick around and start spreading. And _then_ it maybe became a cultural pride or whatever thing with media following suit like you said