(Read my comment below. I just give alternative ways to say the same things, or at least what I think you meant by them.) Az előadás két órás. / Az előadás két órán át tart.

Három hétig maradok Budapesten.

(Nobody had any problems with "hétig" here because it can't be ambiguous.) Három hetet maradok Budapesten. / Három héten át maradok Budapesten. (There's absolutely no difference between the meanings, but "héten át" might sound like a longer time.)

Kati minden este egy-két óráig zenét hallgat.

óráig / órát / órán át / órán keresztül (etc. all same. I think it would be so absurd to think of "egy-két óráig" as "till 1 or 2" in this case, that it's not even ambiguous here.)

A gyerekek vacsora után egy óráig televíziót néztek.

(same as previous)

Hány percig vár az autóbusz?

(same... by the way I would also say "percig" myself)

When I read your sentences they felt OK, then I read the corrections. I think there is no problem with your solutions and the other correctors are way too strict. It's true that "óráig" can be ambiguous, but I doubt it would be in its usual context.

Usually if you say "háromig fent maradtam" it means you stayed up till 3am, but if you say "három óráig fent maradtam" it would usually mean you stayed up for 3 hours and everyone would understand. (Unless it's a language learning site where people get the power to correct others' mistakes.) And the reason for this is that nowadays people rarely add the word "óráig" when they mean the hour of a day.

These exercises are meant to teach the difference between the -t and the -ig ending with time expressions. Look into a Hungarian language book and you will find it in most of them if not in all. So it is not a question of strictness, I think. It is another question that linguists like testing Hungarian native speakers what they feel is good or already not good. You think these form are good, many others may think so, but what would most Hungarians say?