"Hij heeft meer dan twee uur gewacht."
Translation:He has waited more than two hours.
When talking about the length of a duration, one uses the singular "uur" instead of "uren". It doesn't make much sense, but that is how it is. The same goes for "jaar" (year) and "seconde" (second), but not for "minuut" (minute), "dag" (day) or "eeuw" (century).
And this goes for other measures as well, e.g. meter (meter), gram (gram). Plural is only used when the individual instances are meant e.g. er zijn twee slechte meters in de weg (this means that there are two lengths of a meter in the road that both are bad). If you say er zijn 2 kilogrammen people will expect that there are two weights of a kilogram.
The same thing happens in English, but the usage is purely attributive in most dialects, e.g. 'a two hour wait'.
Why "has been waiting" was rejected as incorrect? It's basically the same as "was waiting" in English... I think it should be accepted as correct
"has been waiting" is a different tense...present perfect continuous. This module is about present perfect.
This is a strange question: Why is "he has waited more than two hours" accepted? I thought you can't use present perfect in English when specifying time.
If I understand your question, this instance is about duration rather than a specific time in the past. The present perfect can be used when you're talking about some current duration of time. "She has never swum in her life." She is still currently in a state of never having swum at any point in the past or present. "He had waited for two hours" indicates that he stopped waiting; "He has waited for two hours" indicates that he has already been waiting for two hours and is probably still waiting. But "He has waited yesterday" is impossible, because yesterday is a singular period of time that is now gone and he is not currently waiting yesterday (unless he is a time traveler).