>>572
 実際のSortは TStringList.CustomSort ; virtual で行われています
 で、内部では
private TStringList . QuickSort が呼ばれます。
  名前の通りクイックソートで、再帰的に呼ばれます
  このクイックソートは工夫もなにもしない普通のクイックソートなのでデータの並び方に
  よりスタックを大量に消費しても不思議ではありません

安全な対策としては
 TStringListを継承してStringList.CustomSort ; を自作のソートに置き換えるしかないでしょう