# How can I seamlessly stitch two separate 3D contour plots?

I am trying to make a 3D contour plot of a complicated function over a large parameter range, and I am struggling a bit to make it compute nicely and in a reasonable length of time: more specifically, if I chop the range into chunks then I can get those in a reasonable time, but if I go for the whole range then it takes ages, and I'm struggling to get a good compromise between recursion / PlotPoints / timing.

However, I can get an almost good enough plot by just joining together the different chunks of the parameter range, including them inside a single Show:

Show[{
ContourPlot3D[
(x - 2 Cos[z])^2 + (y - 2 Sin[z])^2
, {x, -4, 4}, {y, -4, 4}, {z, 0, π}
, Contours -> {1}
, Mesh -> None
],
ContourPlot3D[
(x - 2 Cos[z])^2 + (y - 2 Sin[z])^2
, {x, -4, 4}, {y, -4, 4}, {z, π, 2 π}
, Contours -> {1}
, Mesh -> None
]
}
, PlotRange -> All
, BoxRatios -> {1, 1, 2}
, ViewVertical -> {0, 1, 0}
, ImageSize -> 600
] However, that still leaves a mark where the two chunks get welded.

Is it possible to do this join seamlessly?

Using the option BoundaryStyle -> None in both ContourPlots give 