I’ve just recreated what you’ve done in your second video example by doing this.
anchorPoint
r = sourceRectAtTime();
[r.left + r.width/2, r.top + r.height/2];
Position
x = thisComp.width/2;
ya = 0 – thisLayer.sourceRectAtTime().height – 50;
yb = 0 + thisComp.layer(“Shape Layer 1”).sourceRectAtTime().height + thisLayer.sourceRectAtTime().height/2 + 30;
ease (time, inPoint + 0, inPoint + 1.5,[x, ya], [x, yb]);
The position looks at the height of the shape layer + the height of your text/2 + a little padding. This proportions itself accordingly.
It might need tweaking, but it looks the same as your 2nd video example.