Unable to resume multi-epoch experiments with a `MegatronGPTModel`
_NB: I am experiencing this issue with a custom subclass of `MegatronGPTModel` but I expect the same problem to occur with the base class_

**Describe the bug**

I am trying to:
1. Run two epochs:
```yaml
trainer:
  max_epochs: 2
```
2. *but* stopping the experiment in the middle, then resuming it (due to cluster availability constraints)

Now let's see what happens when stopping after the first epoch, and trying to resume afterwards.
The first experiment runs fine, but resuming doesn't work because the following happens when running the second one:
1. `MegatronGPTModel.setup()` is called at the start, which triggers a call to `build_pretraining_data_loader()` which creates a `MegatronPretrainingSampler` on [this line](https://github.com/NVIDIA/NeMo/blob/ab749e4401a3dcdfa5ea969347aaee20b7947c7c/nemo/collections/nlp/models/language_modeling/megatron_gpt_model.py#L993), with `consumed_samples` set to the number of consumed samples during the first run, i.e. `consumed_samples == len(dataset)` (at least with the fix from #7212)
2. As a result, the `MegatronPretrainingSampler` crashes on [this line](https://github.com/NVIDIA/NeMo/blob/ab749e4401a3dcdfa5ea969347aaee20b7947c7c/nemo/collections/nlp/data/language_modeling/megatron/data_samplers.py#L43) because we have already consumed the whole dataset

If you stop before the end of the first epoch (or if you don't have the fix from #7212), the behavior will be a bit different, but it won't work either, at best you'll be able to finish the first epoch but it won't do the second one properly.

**Expected behavior**

The second run should be able to pick up where the first one stopped, and continue until the desired number of epochs have been completed.

**Environment overview**

 - Environment location: Docker
 - Method of NeMo install: Docker

**Discussion**

I have some potential ideas on how to fix this, but I thought I'd ask here first in case I would be missing something obvious (I find it hard to believe I'd be the first one to try and run more than one epoch on a time-limited cluster...)