I suggest an improvement, to be able to vacuum without having to have the free space of the table.
Example to vacuum a 1Gb table you must have a 1Gb free
Overall I love PostgreSQL but the vacuum/MVCC system of MSSQL and Oracle is much better suited for heavy writes, PostgreSQL needs a lot of tweaking in table structures to handle those.
I hoped to see the "pluggable storage" show up in Postgres 13 (including zheap which uses UNDO logs) but apparently that didn't make it.