Really straight forward solver: average the near point positions to get a vector for each point that's directed away from the spline, add it to the point position. Do the same for the bounding geo but negated and only make it affect points outside the volume. To maintain a stable sim with more interesting patterns I added an additional vector that points to the average position of the previous and next point in line, thus trying to maintain a straight line and only bending where its necessary to avoid (self-)collision.
There's some flickering going on mainly due to resampling the spline on each frame and maybe because of too little segments in the mesh.
Also I could've went ahead and multiplied the search radii and force multipliers with a noise but it was a quick late night test and i was already satisfied enough that it worked exactly as i expected :D