I found a partial fix. Using an attribexpression node with Normals turned on and a VEXpression of set(self.x*1, self.y*0, self.z*1) fixes the normal direction, but I'm still getting a good bit of pinching in the corners. Stretch Around Turns in the sweep helps a little, but not much.