in case you still have this problem, I think a good workaround is to only return one of these two optimizers with your configure_optimizers method. The other one you can write into a field of your lightning module. This way only one of them will be wrapped as Lightningoptimizer (and thereby contribute towards global_step). I think this does not have any side effects except that now the optimizer states of only the optimizer that you returned with configure_optimizers are serialized together with your model checkpoints.
Best,
Chris