Image segmentation of a high resolution 2D binary image into clusters, threads and points
I would suggest decomposing the black pixels into connected components using standard algorithms.  (For instance, OpenCV has an implementation of this, I believe.)  Then, classify each component based on your rules.

(I'm not seeing what boundary tracing offers over connected component labelling, but you could try it too if you wanted.)

I recommend you try it and see how well it works.  This should be pretty straightforward to try.  I'd caution against over-thinking things and try to figure out the perfect solution before trying anything.  In this domain, often multiple rounds of "try something, identify its shortcomings, and improve" are necessary, because it can be hard to predict how something might fail.

If this works, it will be very efficient (it runs in linear time) and quite simple, so you don't need to worry about it being a "brute force" or "naive" method.  I wouldn't worry about micro-optimizations at this stage.  Instead, implement it and see how well its results seem to be.  Only after you are happy with the quality of the results should you even begin to think about potentially optimizing it -- but I would expect that it might be so fast that there is no point in spending any energy trying to optimize it.

You might discover that the connected components are too large and include both clusters and threads.  If so, that's telling you that your rules aren't quite right yet, and you'll need to investigate more sophisticated solutions.  One possible approach might be to apply a morphological operation, such as a thinning operation or erosion, to remove the threads, compute connected components on the result, and use that to identify clusters.  You might also be able to compute a skeletonization of the shapes, and use that to identify threads (e.g., compute the "thickness" of the shape at each point: for each point $p$ on the skeleton, compute the distance to the boundary in the direction perpendicular to the direction of the skeleton at $p$).  Once you've identified each shape separately, you might be able to compute its bounding box and the fraction of pixels within the bounding box that are black, and use a threshold on that fraction to distinguish clusters from threads -- if you can separate the cluster from the thread.  You might need to experiment a bit to see what works well for your images.