

Free space compression is easily done by each of them to my knowledge. Everything else in your dataset doesn’t sound highly compressible anyway. Plus, you should really consider decompression time. In general your trade-off seems wrong. If you need compression at all in your case, go with the fastest decompression time. If you’re using a filesystem like ZFS, you can have it handle compression automatically.
From my perspective zstd seems like it’s becoming the new standard over gz/bzip2/xz, so maybe consider this.
50-100% is no small percentage.