Given the data size the cluster must be a dedicated tier M10+.
A compaction can be done to reclaim free blocks from the collection.
This should be done on each secondary in turn. Directly connect to run the command, do not use the mongodb+srv:// connection string. The host name are visible from the metrics view, tls should be set to true, and for most cases authSource set to admin.
Once the secondaries have been compacted use the test-primary-failover-process to switch primary to another member.
Then compact the collection on the old primary.
refs:
https://www.mongodb.com/docs/manual/reference/command/compact/#compact
https://www.mongodb.com/docs/atlas/tutorial/test-resilience/test-primary-failover/?tck=mongodb_ai_chatbot#test-primary-failover-process