Registry compaction and defragmentation are two different things, that's why PageDefrag shows different results.
Registry compaction works on a higher abstraction level, it regenerates the registry storage files and thus removes all empty spaces within the data structure. Because this works on a higher level, any file locks do not affect the procedure.
Defragmentation works on a low level, simply by analyzing to how many fragments a single file (in this case, the file used to storage the registry data) is saved to disk and then combining these smaller fragments to a single fragment for faster data access. If a registry is compacted it can still be fragmented and vice versa.
However, registry fragmentation is a very theoretical problem and doesn't usually cause any problems with performance as usually all registry operations work from RAM, not from hard disk (and fragmentation plays a part only when reading or writing to hard disk). While not compacted registry can slow down the system also outside the realm of theory, because a very old and badly structured registry causes delays to each registry read and write even as the data itself is stored in RAM.
Although the actual amount of this delay (and thus the maximal theoretical performance gain by compacting the registy) is under dispute. Therefore the Registry Compactor is in a very minor role in our products, it's just a small and simple feature in PowerTools while some of our competitors sell entire products which only compact the registry for a whopping $29.95.