I’m sorry to have kept you waiting so long.
待たせるという行為が今終わったところです。
I’m sorry to have been keeping you waiting so long.
待たせるという行為がこの後も継続するわけですが、それなら…
I’m sorry to keep you waiting so long.
これでいいんじゃないですか。
現在完了進行形をもってくる必然性がありません。
それに keep 自体が進行をあらわすので、重複して不自然です。
回答ありがとうございます。 文法的な解釈でkeepは 「動作をし続ける」 「何かをある状態に保つように動作する」を示し すなわち進行形に出来る動作動詞=完了進行形にもできる ……と読み解いて混乱していました。 おっしゃるとおり、それ以前の問題で 完了形の段階で状態の継続を表しますし keepも状態を維持する意味ですので重複表現でヘンですね。 単純に「意味的にヘン!」と考えることにします。
Azuma_T