Hi,
The important thing to understand is that terrain is that terrain and imagery are not selected independently in Cesium. Terrain tiles are selected to meet the screen-space error, and then whichever imagery tiles are attached to the terrain tile are rendered along with it. The attached imagery tiles are chosen according to this errorRatio parameter:
https://github.com/AnalyticalGraphicsInc/cesium/blob/master/Source/Scene/ImageryLayer.js#L546
(or, coincidentally, the heightmapTerrainQuality, but that is not intended behavior).
When the errorRatio is 1.0, there is approximately one imagery tile attached to each terrain tile. If it’s 0.5, there are approximately 2x2=4 imagery tiles attached to each terrain tile. 0.25 means 16 tiles. 0.1 means 100 tiles. What you really want is for high-detail imagery tiles to be rendered near the viewer and lower-detail tiles far from the viewer, even within a single terrain tile. But that is a drastically more complicated selection algorithm than the one Cesium currently uses. The assumption is that this value is going to be close to 1.0.
If you want lower quality terrain while maintaining higher quality imagery (beyond small tweaks to that errorRatio), I’m afraid your best option is to create a terrain dataset with fewer vertices in each tile.
As for your other observations, Cesium does currently load more terrain and imagery tiles than necessary, for a mix of good and not so good reasons. There’s a big chunk of working happening in the fill-tiles branch to improve this situation:
https://github.com/AnalyticalGraphicsInc/cesium/pull/7061
Some more discussion is here:
https://github.com/AnalyticalGraphicsInc/cesium/issues/3857
Kevin