I have a few other things planned for Spline - one of which will allow parallel control paths. One important thing to note about these parallel paths is that the interpolated positions that are equivalent are not equal distance apart. For example, through a bend, the outside of that bend has the same number of points that are further away than the inside of that bend. The solution for that in animation paths is to use the points as a target and then move towards that target using a velocity.
Also, on sharp bends, the sides aren't always as expected - a sharp corner only becomes that angle for its single position and any positions before and after are still "normal" so inners can cross in a weird way (you can see this effect by drawing a thick spline with a semi-transparent colour).
Adding an extra vertex at the end that matches the first vertex was not enough to close the Spline correctly. The angle of the ends still didn't match as they don't take into account the angle of the path before or after it. To see what I mean, create an open spline with very few interpolated positions and a bend at connection.
Note that, with Spline, I intentionally only use the word vertex to refer to the control vertices of the Spline and never the actual rendered vertices (that only occurs in the implementation code).
I see you have quite a few libraries in your engine! I happen to use
Plinth in everything I make. It even has some things designed alongside Selba Ward things (Frame Sequence was designed alongside Gallery Sprite, for example)
and you may want to consider
Kairos, the timing library, especially since you seem interested in "bending time"
Oh, and one thing to note about subdivision in Spline 3D: don't overdo it! It increases exponentially so double digits could easily kill computers