Repairs can create a lot of tiny SSTables. I also encountered the creation of so many sstables that the node died because of TMOF. At that time the affected nodes were REALLY inconsistent.
One reason can be immense inconsistencies spread over many partition(-ranges) with a lot of subrange repairs that trigger a lot of independant streams. Each stream results in a single SSTable that can be very small. No matter how small it is, it has to be compacted and can cause a compaction impact that is a lot bigger than expected from a tiny little table.
Also consider that there is a theoretical race condition that can cause repairs even though data is not inconsistent due to "flighing in mutations" during merkle tree calculation.