I went down this same route. Procedurally making an icosphere isn’t really “hard” persay. But there are a number of little “gotchas”. I ended up making the sphere a set 10 meshes each a pair of 2 triangles.
Also what @jayfella said is absolutely true. Since you have a single “origin” point for a sphere calculating the normals is a snap.
One tool that I found SUPER handy for figuring out the math was the website Wolfram Alpha. I used it to help figure out which vertice connected to another vertice when assembling the point cloud.