Glad you asked, I had a eureka moment a few weeks ago and been using the NLA with GP ever since, quietly thinking to myself that it's the best thing since sliced bread.
TLDR; Re-implement the timeline by placing keys on a Time Offset modifier then push those keyframes as action strips.
For a super simple example, we're drawing on 4s and only doing half a walk cycle (it's a silhouette so no difference between right leg in front and left leg in front). So our loop has 4 drawings, the first on frame 1
and the last on frame 13
(and in this case those 2 frames are actually the same):

Add a Time Offset Modifier and switch it to Fixed Frame. Go to the first frame and add a keyframe by pressing I over the Frame
field in the modifier. Then go to frame 13
, set the Frame
field to 13
and add another keyframe:

Right, so we've just painstakingly re-implemented what the regular Blender timeline does by default, which might seem a bit of a waste of time, but far from it: we have two keyframes that show up in the action editor!
Now go over to the NLA editor, push those keyframes as a new action strip and you're good to go. Using the Action Clip
section of the Strip
tab in the right panel, you can set it to repeat and/or change the playback speed. You can of course also duplicate the strip and move it about as per usual.
I suppose it is just a workaround, but what's awesome is that if later you decide to add extra frames to the loop (say, draw it on twos or on ones) it will automatically update the entire animation. Just remember to disable the modifier in viewport when you want to change/add frames.

Another cool thing is that, by using multiple Time Offset modifiers with the Influence
option to limit it to certain layers, you can combine different animations in the NLA editor, which really opens up a whole bunch of possibilities.