Your custom sampler and the Subset will yield the same data samles, if you don’t use shuffle=True for the DataLoader using the Subset.
The main difference is, that a custom sampler can do much more than just returning a subset of the data.
E.g. the WeightedRandomSampler implements a sample weight, which can be used to balance the batches for an imbalanced dataset.
It shouldn’t make any difference regarding data augmentation, as only the indices passed to __getitem__ will be customized, not the method itself.