Don't you love it when you spend all this time writing up a question and then immediately solve it?
Managed to solve this by adding a new static variable to the Animation class, public static var getTimerOverride:Function = null;. When this function is not null, everywhere that getTimer() is called is replaced by a call to getTimerOverride(). Then during initialization I just apply a custom function to get the game timer provided from C++ and then it's good to go.
Simple enough.