The breakup shader that's attached to the surface shader breaks up the 'grey' areas, easy to check if you attach a soft simple shape (size 100m, edge profile bevel and 50m) as mask input. The edges are broken up by the pattern of the breakup shader. If you uncheck breakup, the edges are a smooth transition.
For color variation I usually use power fractals (as a series into the color input or child input). The top one can have both colors checked, but the subsequent ones need only one color (which lays on top of the previous colors), if you use two colors they will overwrite the previous colors completely. You can also stack a series of surface layers, masked by a series of power fractals (you can leave the breakup shaders as they are), where you can alter the coverage for more subtle layers of color over eachother.
And regarding size; think meters! And check each fractal for its distribution pattern (the square under 'stay open'), you can easily see what happens if you change size, color settings and noise settings.