The javadocs for online disk store compaction-threshold imply that GemFire compact as soon as the amount of garbage is equal or greater than the threshold.
From DiskStoreFactory.setCompactionThreshold:
When the amount of garbage in an oplog exceeds this percentage then when a compaction * is done this garbage will be cleaned up freeing up disk space. Garbage is created by * entry destroys, entry updates, and region destroys.
However GemFire actually trigger compaction when the amount of non-garbage data is equal or less than the threshold instead so online disk store compaction appears not to be working.