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.
When writing something that will be read by someone in the future,
you have two choices for referring to Now:
- Now is the time when you are writing the message (speaker's present)
- Now is the time when the message will be read (reader's present)
If you use the present perfect for your waiting, followed by the present progressive for your leaving, as in the example sentence, then you're taking the first option. (Progressive can be used, or not, in the first clause.)
- I've waited/been waiting for you for an hour and I'm leaving.
If you use the past tense in both cases, you're taking the second option:
- I waited for you for an hour and (then) (I) left.
Either option is correct. In speech, speaker and hearer experience the same Now, but this is not the case with written communication.
Best Answer
It's "correct" but outdated. You'd be hard pressed to find someone using it in modern English.
The modern equivalent would be "have you come here".
In this example, the Giant is asking the man why he's come to the Giant's home.