The PlaySprite() command does allow you to play a non linear set of image frames as part of an animation. Its just more complex to set it up. You can do this with one Atlas image with the 4 frames on it. These can be played in the 1,2,3,4,3,2 order as you have said.
You cant use SetSpriteAnimation() as that only allows you to set up frames that are in order Ie 1,2,3,4
Instead, you have to use AddSpriteAnimationFrame() for each frame you want.
1) Load up the atlas image for your sprite
2) Load up subimages for the 4 images in that file (1,2,3,4) - LoadSubImage() - you will need a subimages file for your atlas image to use this
3) Setup the animation by using AddAnimationFrame() adding each frame in the order you want it ...Add frame 1, then 2, 3 4,3,2 (Now you have 6 frames of animation but using 4 images)
4) Then just use playsprite same as before.
Its not really any 'slower' using this method as you are still using one atlas single atlas image and AppGameKit is just changing UV coords
I have attached an example project which sets up 6 frames of animation but using 4 images in the Atlas image file and plays them in the order you wanted.