To me am "expat" is a person who's dispatched by their company or organization to work overseas and often has all their housing and expenses paid for. Almost always they'll be PMCs or PMC adjacent. The term used to imply a certain degree of prestige and wealth (imagine a PMC salary but you didn't have to pay for housing or transportation) so other people also latched onto it.
In Asia, where I'm from and live, it's mostly white western English "teacher" types who insist on being called Expats. For that reason, I make it a point to call them "migrant workers". Though if anything that's an insult to migrant workers since they work hard and perform socially valuable tasks, unlike most English "teachers" I know.