Die Threadsicherheit wird dadurch hergestellt, dass die FormatSettings entweder nur in einem Thread verwendet werden oder einmal eingestellt nicht mehr verändert werden. Ich frage mich aber, warum du überhaupt die vordefinierten FormatStrings nimmst, wenn du solche Spezialitäten brauchst. Dann kannst du den FormatString doch bei FormatDateTime direkt übergeben.
Delphi-Quellcode:
S := FormatDateTime('mm-dd-yyyy hh-mm-ss', Now, TFormatSettings.Invariant);
Das TFormatSettings.Invariant ist nur zur Konsistenz da und hat eigentlich keinen Einfluss.