Both your sentence and your friend's sentence have already diverted from the meaning of the original sentence.
The original sentence is "Carrie arrived at the airport two hours ago."
From that sentence, you cannot deduce whether Carrie is still in the airport or has already left the airport for the past two hours. The only information from that sentence is that "Carrie arrived at the airport two hours ago", she is at the airport two hours ago, but she may or may not be in the airport one hour ago. Both your sentence and your friend's sentence assume that Carrie is still in the airport, which cannot be deduce from the original sentence.
A more accurate rewrite of the sentence will be "Carrie reached the airport two hours ago" or "Carrie was at the airport two hours ago".
"Carrie has arrived at the airport for two hours" is not a correct wording of the English language.
"has arrived" is an instantaneous occurrence, whereas "for two hours" implies a continuous activity that takes place over an extended duration.
Carrie will "arrive at the airport" (instantly), but may be stuck in the custom/traffic "for two hours" (over extended duration). However, the concept of "arrived" and "being stuck in custom/traffic" are two difference occurrences.
Similarly, "Carrie has stayed at the airport for two hours" is also not correct wording, as "has stayed" implies an even longer duration (eg. two days) than two hours.