Appreciate the response, but that's not really what keyframing is - keyframing means you define the animation at key points, and your software interpolates automatically between them - so, you set what it's like at 0 seconds and, say, 1 second, and then your software would fill in all 30 or 60 frames between. AnimatedTexture does not do keyframing.
I have been a gamedev since the 8-bit days and understand the underlying concepts quite well, but don't understand why Godot made this very odd choice for AnimatedTexture - usually, you fit all of your frames into one texture and each frame is a sub-rectangle of that full size texture (sometimes called a spritesheet when it's sprites, etc). I come to Godot with a ton of assets and, unfortunately, can't use a lot of them without serious retooling.
I am certain, given the time to study the C++ code more, I can change the way it functions to fit my needs better... but before I do that, it might really help me to know why they chose to do it the way it's done. From what I can tell at the moment, it is primarily related to the way _update_proxy already worked, and rather than modify that, they just did what they could in the existing framework.