Mask vertices move is a straight line between key frames. This is what's causing your circle to travel in a diamond path. Masks also change shape if you rotate the mask. The same thing causes the problem. Mask vertices always travel in a straight line between keyframes. There's a mask interpolation tool that helps when masks rotate, but it won't help in situation. There's no way to create, see or edit a bezier (curved) motion path for a mask vertex.
A better approach would be to use a elliptical shape layer instead of a mask. Position the shape layer on the planned path, then use the transform property of the shape layer to do the rotation. Shape layer behave much better than masks.
Now if you need to use the circle to mask or cut out an area in a footage layer then just place it above that layer and set it as an alpha track matte.
Maybe a picture would help.
The Ellipse 1 has transform properties which position it on the shape layer. If the Transform Ellipse 1 position is 0, 0 then it is at the center of the Shape layer. This one is 142 pixels left of center and 65 pixels above.
The second Transform property is for the whole layer. This is the one you would use to rotate the ellipse. If you adjust the position of the mask layer you'll also be able to see and edit the bezier path for the motion.
I hope this helps.
Aside from Ricks wonderful suggestion, the whole problem could probably just as well have been solved with rotating the layer and using it as a matte, rather than trying to animate the mask...
Thanks both very much, will have a good look at this tomorrow