Chopping the lines into sections seems like a good approach.
If the query is truly for a buffer of that line, you can query simply using the envelope of the section expanded by the buffer distance. And then just test IsWithinDistance rather than computing the actual buffer.
You will have to deal with duplicate points returned when query envelopes overlap.
I'm thinking there should be a more clever solution to this, using the same approach used by IndexedFacetDistance. That is, create an STRtree of the points, and one of the segments of the line. Then mutually recurse through the trees, discarding any node pairs which cannot contain any items closer than the buffer distance. This is effectively the same as doing repeated queries to the point tree by the line segment buffer envelopes, but should be faster and won't return duplicates. The IndexedFacetDistance code is slightly different, because it is finding the closest pari. But it should be possible to modify this so that is accepts a distance tolerance (i.e. for withinDistance), and also so it finds all candidate pairs. That's an interesting application - I will think about how to provide this as a standard feature.
Out of interest, what are the dimensions of the geometries involved? I.e. # of points, and extent of points compared to length of line and buffer distance? And what's the real-world domain, if you are able to say?