Vielleicht sollte man eher versuchen den Sourcecode von
Indy zu verbessern.
Es kann/darf doch nicht sein, dass für läppische 700kb ganze 34 Sekunden für die Codierung anfällt.
Ich habe mir gerade mal die function TIdEncoderQuotedPrintable.Encode() angeschaut:
da wird Zeichen für Zeichen an einen String angehängt.
Ganz klar, dass das sehr langsam wird.
Du könntest etwas "Jugend forscht" betreiben und rausfinden in welcher Funktion so viel Zeit hängen bleibt.