Wäre es eine clevere Lösung den Zwischenschritt
raise einfach wegzulassen?
Stattdessen würde ich eine neue Procedur einführen, die in meine Fehlerdatei schreibt. Und überall wo ich aktuell raise aufrufe, rufe ich dann diese Prozedur auf.
Dann sollte ich theoretisch doch alle Limitierungen los sein?
Statt
raise Exception.Create('123');
also
SchreibeInDatei('123');
Vielleicht könnte man in SchreibeInDatei() ja auch prüfen, ob man gerade im Mainthread ist oder nicht?