Yes, Forest works exactly in that way:
1) It creates several sequences of animation. The number of sequences is defined by Samples->Count.
2) Each sequence is displaced along the time according the Samples->Time Offset value.
3) One of the sequences is assigned randomly to each item.
For example, Samples=4, Time=10 (using frames as unit-time), will take four mesh samples at frames 0, 10, 20, 30 (at animation frame 0). At frame 1, it will take samples at 1, 11, 21, 31 and so.
The behaviour when the animation limit is reached (for example, frame 25 in a proxy with only 24 frames), depends exclusively of the custom object. For example, in a VRay proxy the "Playback" parameter (loop, ping-pong...) is used. For a Max animated object (as a GrowFX tree), the animation would be continuous, depending of its animation track.