it doesnt return the frame just a float on time passed on the anim
You're quite wrong. It returns the frame number if the animspeed = 1. If the animspeed is less than 1 then it returns a fractional part but it is still based on the last animation frame drawn, i.e., Animate Model,1,0.1, dumping AnimTime() results to debuglog would show 1.1, 1.2, 1.3, 1.4 and so on.
In short - its based on animation frames, not time. And yeah I know, AnimTime was perhaps not the best name for this function.