As others have noted in the comments, it is often considered preferable as a matter of style to avoid reusing the same preposition in a sentence. This is not one of those situations.
I've been waiting 5 hours for him.
I've been waiting for 5 hours for him.
I've been waiting for him for 5 hours.
^ Each of these is perfectly fine in spoken English. The first sentence might be slightly preferable for written English.
Note that in informal American English, the most common way of rendering the statements in the original question would probably be something like:
I've been waiting for you for hours.
especially in spoken English.
(you might replace "for hours" here with "days," or "weeks," or "a really long time," etc., as appropriate)
I've been waiting ages for you is grammatically fine, but using "ages" with this meaning sounds a little stilted--especially to a younger American's ears.
I've been waiting you for ages.
^ this last sentence is not an option under any circumstances; when "you" is included, you cannot omit the "for" (unless you change "waiting" to "awaiting")