From How is data deleted?
Cassandra allows you to set a default_time_to_live property for an entire table. Columns and rows marked with regular TTLs a
AFAIK there is no big difference between tombstone records and the ones with expired TTLs. In your case, forcing major compaction transformed TTL expired record to the tombstone, but it was not purged due to gc_grace_seconds. According to this presentation, tombstones/ttl-expired-records go away:
So technically, the tombstone/ttl may go away after gc_grace, but it's not guaranteed.