I mean the Unit Offset of the PathFollow2D, or its Offset, which is the same thing only in actual pixel distance.
Yes, you will need to use multiple PathFollow2Ds if you want things to stay on the path.
OK, I tried this myself and I see the problem. The AnimationPlayers won't let you keyframe a Unit Offset of greater than 1.0, and they don't know how to loop it properly. I actually got it to work by manually setting a keyframe's value to 1.1 (looping to 0.1 at the start of the animation), but . . . the editor still showed the value as 1.0, so I think that may be a bad idea . . .
This would be a lot easier to do with a script rather than an animation. You can set the Offset or Unit Offset on a PathFollow2D to any value you want, and it will automatically loop the way it ought to. Just do something like this:
onready var follow1 = get_node("Path2D/PathFollow2D")
onready var follow2 = get_node("Path2D/PathFollow2D2")
var followspeed = 0.5
func _process(dt):
follow1.set_unit_offset(follow1.get_unit_offset() + followspeed * dt)
follow2.set_unit_offset(follow2.get_unit_offset() + followspeed * dt)
. . . and then in the editor set their Unit Offsets to whatever you want so they are spaced out correctly on the path.
Of course this method gets a lot trickier if you want them to change speed or do anything fancy. Stopping and starting them would be easy though, just set up a Timer to toggle their _process() on and off.