1. Active animation = playing or preloaded animation. If an animation was not preloaded & has finished playing (on screen) then it will be added to temp cache. If it was preloaded then it will remain in active animation table until you manually unload the animation.
2. I think it is only active if playing on the screen. If you change to a new scene then it will end up in the temp cache. The cache as far as I understood dumps older animations for newer ones when it reaches its limit. The limit can be adjusted via game properties tab or via Lua script. The only exception to this is current character walk, talk, & idle animations I think, they are preloaded to keep it smooth between scenes. Interface animations will only be active if interface is active & visible.
3. I suppose you could do something like...
if ActiveAnimations["name"] then print(true) end -- not 100% sure on this, as it might return an error for accessing incorrect table.
4. see 2.
5. see 2.
6. Yes you can use Lua script with AnimationFirstFrame & AnimationLastFrame to force which frames should be playing. You can also use Lua to return current frame index values or for controlling the direction, loop amount, frame pause values & so on. Actually I tend to control animations this way because it means I don't have to use as many animation frames or duplication frames to achieve whatever it is I'm wanting to do.