It’s possible to write a custom TerrainProvider to load heightmap data from any source you like. What’s more difficult is using custom data for a small region, combined with the standard global CesiumTerrainProvider. You would have to combine the sources manually, as Cesium supports the use of only a single TerrainProvider. This is different from imagery, where multiple sources of imagery can be combined easily on a single globe.
One good option is to try out the functionality in the ground-push branch. It was contributed by Chris Cooper and some other folks at NICTA, and allows you to push a retangular surface region down, revealing a new imagery layer or other primitives below the surface. Try it out and let me know how it works for you! We hope to have it in master shortly, at which point it will roll out in the next official release, b23 if all goes well.