Why does MemOptimizer not always recover up to the Target setting?
Because if you set the target too high, you've set an impossible goal! MemOptimizer will recover as much RAM as possible, and can usually get up to your target level (though the higher the level, the more work MemOptimizer must do, and hence the longer it will take).
Note that on recent Windows versions, the kernel manages the memory in such a way that as soon as memory is recovered, it is used by waiting applications and the operating system, so the displayed value may never equal the target level. It's still doing its job, though, even if not apparent!