Just to clear up a misunderstanding engine.getFps() refers to the rendering frame rate used by Babylon.js and this is not the same as the animation frame rate which you fix for yourself.
frames per second - number , the number of animation frames per second (independent of the scene rendering frames per second)
from The Animation Method | Babylon.js Documentation
So if you have 100 animation frames that you want to render of 6 seconds the frame rate is 100 / 6
and the frame count goes from 0 to 100.
The other point is about using absolutePosition.
This PG uses the position of the sphere and as it has a parent it is the position of the sphere relative to its parent (see line 31) https://playground.babylonjs.com/#X6RG4E#7
This PG uses absolutePosition https://playground.babylonjs.com/#X6RG4E#8
See how the sphere jumps. In
let sphereMove = new BABYLON.Animation("sphereMove",
Your start point is the absolutePosition of the sphere but it is the sphere’s position not absolutePosition that is being updated within the animation.
As far I I know there is not a parameteryou can add for absolutePosition in BABYLON.Animation