好多问题啊..
1.如果是我我就说:How long have you been waitin for me?
2.句子没什么问题,但是waited for me后面就不要for 了.个人觉得学英语不要太去抠语法了,多培养语感多运用运用比分析句型来得方便.
如果是问句,就不要for.Do you know how many hours I have waited for you?
如果回答,且要表达具体多长时间,就要加for.I have waited for you FOR 1 hour.
3.sleep 后是绝对不加for的,除非如上述,后面跟具体时间段的就可以加.
4.我也貌似看到过加for和不加for的.但是常常听见还是,e.g.:I slept for only 2h last night.
5.Do you know how long I have been here/ on the top floor/ under the sun waiting for you?
或者用你的句型:Do you know how long I have waited for you in here/ on the top floor/under the sun?
6.I have waited for you for 2hours outside the building/ in the restaurant.