This is how you scale along a custom axis in Blender:
![](https://cdn.statically.io/img/i.sstatic.net/y7qc9.gif)
Transform Geometry nodes use matrix transformations (in all cases except when only Translating = moving), and this is the typical matrix shenanigans (just like rotating around a custom pivot points means moving so the pivot point is in the origin, rotating, and moving back). Just keep in mind since you don't have the super-convenient "Reverse" option known from the Vector Rotate node, if you rotate on more than one axis, you need to manually reverse the rotation order from $xyz$ to $zyx$:
![](https://cdn.statically.io/img/i.sstatic.net/V9Iuf.png)
In your case you want to rotate multiple things, so You can't use the Transform node, but you can use equivalent instance nodes:
![](https://cdn.statically.io/img/i.sstatic.net/N3zhE.png)
The result, as well as a comparison with UV spheres:
![](https://cdn.statically.io/img/i.sstatic.net/5mUem.png)
Aligning scale to tangent
I think you might be after this:
![](https://cdn.statically.io/img/i.sstatic.net/RoKt5.png)
![](https://cdn.statically.io/img/i.sstatic.net/kBPdK.gif)