Splines are already interpolated (and subdivisions can be increased) and you can get direction at distance / time / point, closest world location even! As in:
No need for indexes but you can, ofc, insert extras.
Not sure I follow the ask as, to me, everything already seems to be in place and what you say is contradictory:
I cant access the heading of closest spline point
vs
But Indexs are integer and too far away.
It seems as if you want and do not want to access a spline point data? What am I missing?