✨ ベストアンサー ✨
文を書き換えると、分かり易いと思います。
①I'm sorry to have kept you waiting so long. = I'm sorry that I [have kept](現在完了) you waiting so long.
※「長い間お待たせして」は現在完了・継続で表現するのがベストだと思います。
②I'm sorry to have(使役動詞) you kept(過去分詞) waiting so long. = I'm sorry that I have(現在) you kept waiting so long.
※have O ~ed(過去分詞) Oを~してもらう・させる・される:目的語(O)=もの、O≠人 です。
参考にしてください。
You're welcome!😊
ありがとうございました!