I think the reason you're not getting any answers is that you asked a rather long question that's almost entirely algorithmic, with little or no mathematical content, and answers can easily be found by searching the Web e.g. for "merging polygons". Here's a post in comp.graphics.algorithms that answers your question in the general case. For your simple case, I'd suggest a), which is much simpler to implement than b) and c). Note, however, that this sort of thing is prone to rounding problems -- if it's possible that one of your points lies exactly on the boundary of the other polygon, that's likely to spell trouble because you won't be able to detect that exactly when intersecting the lines and you somehow have to make sure that different intersection tests are consistent despite rounding, e.g. you have to make sure you don't miss an intersection because both lines emanating from a point on the boundary test as non-intersecting because of rounding.
One way to do this would be to consider the Hausdorff distance. Given two subsets $A$, $B$ of a metric space $X$ (for example, two intervals in $\mathbb{R}$) the Hausdorff distance between them is the largest value out of
$$\sup_{a\in A}\, \inf_{b\in B}\, d(a,b)$$
$$\sup_{b\in B}\, \inf_{a\in A}\, d(a,b)$$
That is, first we consider a point $a \in A$, find the least distance to a point $b\in B$, and maximise this over $A$. Then we do the same thing with the roles of $A$ and $B$ reversed. Finally we take the largest of these two values.
Under the Hausdorff metric, the set of non-empty compact subsets of $X$ into a metric space (so, for example, all distances are non-negative, if the distance is zero then the sets coincide, and distances satisfy the triangle inequality).
How does this work in your case? Let's write $A=[a_1,a_2]$ and $B=[b_1,b_2]$ and take a special case of $a_1<a_2<b_1<b_2$, so that the intervals are non-overlapping and every $a\in A$ is less than every $b\in B$. Then the first expression has the value $b_1-a_1$ and the second has the value $b_2-a_2$, so the distance between the intervals is
$$d(A,B)=\max(b_1-a_1, b_2-a_2)$$
How about if $B$ is contained inside $A$, so we have $a_1<b_1<b_2<a_2$? Then the first quantity is $\max(b_1-a_1, a_2-b_2)$ and the second quantity is $0$, so the distance between the intervals is
$$d(A,B)=\max(b_1-a_1, a_2-b_2)$$
You can proceed through all possible cases in this way. In fact, my conjecture is that for any two such intervals, we always have
$$d(A,B) = \max(|a_1-b_1|, |a_2-b_2|)$$
although my enthusiasm doesn't quite stretch to working through all the cases. Shouldn't be too hard to do it yourself though!
More information: http://en.wikipedia.org/wiki/Hausdorff_distance
Best Answer
Hierarchical clustering could be made to do this for you. http://en.wikipedia.org/wiki/Hierarchical_clustering
The idea is that when points are close enough together, you merge them into a cluster. Then you measure distances between clusters. If two clusters are close enough, you merge them. You just need to be careful as to which metric you use to measure the distance between clusters. In order to guarantee that you have a max pre-defined radius, you'll want the distance between two clusters to be the maximum distance between any two points in the cluster.
The way the algorithm is defined it keeps merging clusters until there is only one. Then you can back up to however many clusters you want. You can modify this so that you only merge as long as the distance is smaller than your pre-defined max radius. Once all the distances between clusters are too big, you stop merging.