To align properly the hair to the surface and to the flow from blue to yellow, we can use 2 vectors : the normal of the surface, and the direction of the tail which is the tangent of the curve. The normal in itself isn't enough to align the hair. Here is an example of rotations to achieve our goal (not actually the same order as my nodes) :
$n$ is the normal vector pointing outwards, $d$ is the direction of the curve, pointing from the base of the tail (blue) to the end of the tail (yellow). In my nodes these vectors come from here :
I also save in the geometry the factor of the initial curve as curveFactor. It is used both to drive the spreading of the hair outwards and in the material to drive the color gradient.
The rotations are done as follows :
I encourage you to disable/enable the 3 rotation nodes to understand what they do. I'm achieving this result by playing with the parameters until I get what I want, so I won't be able to explain more than that.
The Rotate Rotation node (spreading rotation) is especially useful if you want to rotate with local coordinates.
Final result and blend file