How did you measure the loading time?
Note that both DataLoaders use multiple workers, which load the data in the background.
If you just stopped the time after batch1 was returned and then again after batch2, you have to consider that generator_iterator2 was working the whole time in the background.
Depending on your current system, you might also want to play around with the number of total workers, as 12 processes seem to be quite high.