All excellent points, especially about cost.
I've considered "faking" the append functionality by making a new file per append action, then performing a periodic compaction.
Even compaction-via-combine-and-delete-old is clunky.
aws s3 combine --target s3://bucket-name/output-file.txt \
s3://bucket-name/input-file-1.txt \
... \
s3://bucket-name/input-file-n.txt
I, for one, would pay extra for that.