Regarding the jaggedness, there are two ways to triangulate each grid cell. If you choose the one that has the center "axis" parallel to the gentlest slope of the quad, your terrain will come out a little smoother (especially if you're using normals for lighting).
See "additional optimizations" here:
Since you're doing this on the CPU, it's easy enough to do as you can just re-order the triangle vertices as you create them. But if you end up doing it in a vertex shader at some point: