Ich würde Variante 2 empfehlen (also das, was als "jetzige Idee" gekennzeichnet ist). Das dürfte am flexibelsten sein und ist sehr einfach zu verarbeiten. In jedem Frame gehst du einmal alle Joints durch, prüfst, zwischen welchen Keyframes du dich befindest und interpolierst. Fertig.

Variante 3 ist auch nicht schlecht, setzt aber voraus, dass du in jedem Keyframe für alle Joints Werte speicherst. Das ist unter Umständen nicht sooo schön. Insbesondere, wenn du zwei unterschiedlich lange Teilanimationen mischen willst (Beine des Charakters laufen in einem 900 ms Loop, während die Schlag-Animation, die gleichzeitig abläuft, alle 1200 ms geloopt wird.)

P.S.: Children, nicht Childs. Für den Fall, dass du den Code veröffentlichen willst.