How accurately do you need the centroid?
Are the clusters identified with a particular attribute? If so, then a bounding container of some form (ie extent rectangle, min area bounding rectangle, convex hull), followed by a centroid or label point determination might be reasonable.
If the clusters have no identified attribute which can separate the clusters, then perhaps a dissolved buffer of some reasonable distance to ensure polygons with no holes, followed by a similar centrality point determination might suffice.
otherwise, you may have to resort to other clustering algorithms (k-means?) etc.
In any event, your 30k points may have to be batched into separate geographic regions followed by a merge.
If your example is not really representative of the actual patterning in your data, then all bets are off until further information can be provided