I have always thought that expat refers to those who maintain their citizenship of country of origin (an American citizen living in Spain) and an immigrant is someone who is either a citizen of the destination country or on the path to become one.
Your definition of an expat matches undocumented immigrants from Latin America to the US perfectly, and yet somehow the word is never used in that context.