I think because in English "I have been" indicates an action that began in the past and is still continuing now (ie You're still waiting as you speak). The present perfect tense in Italian (eg "Ho aspettato") refers to actions that were completed in the recent past (ie You were waiting, but you're no longer waiting at the time you speak)
Basically it's just present tense + da + length of time
I think that is actually correct, whereas "per cinque ore" i think is wrong. From what I remember, aspettare translates best as "to wait for".
The previous example in an exercise was "ha aspettato più di due ore"...so why not "ho aspettato cinque ore". Why do you need the "per"?
The "per" in this sentence is superfluous. The verb "aspettare" is translated as "to wait for" Therefore, it should read "Ho aspettato cinque ore"
In English we would say “for five hours” as they do in Italian “per cinque ore”. So why do DL miss out the “for”?