Dash it all, this has really captured my mind and I can't put it down. After doing some brainstorming (another sleepless night) I believe I've figured out how to generate a pseudo-3D map ala-Dwarf Fortress.
My first step would be to generate a height map using zones. Height can range from 0 to 127, so I have 128 different height values. Each tile will have a different zone written to it, depending on what my height map generator generates. Using the method TMC provided, I'll run this same generation again over 16 different maps.
Now that each map has the same height-map (zones), I can run another script for each map to figure out what goes where. Water could fill all areas below a certain height. Grass could only grow on areas that are relatively flat over a certain area to simulate plains. Areas with very varied heights would be rocky. If there's a very drastic change over a certain range, then a script could figure out that it's a cliff.
Different maps would thus have different terrain generated on them. Using the z-level walking I made yesterday (or was it two days ago?) the player would be able to walk between different levels almost seamlessly. Going to a "low" map, the player would be more likely to see rivers and water. Going to a "mid" map, rivers wouldn't be visible, rather they would be seen on the map as empty space leading to a lower z-level. The same goes for higher z-levels.
I feel that the main hurdle here would be generating a good height map. I've done a bit (read: a lot) of reading, and I've implemented a
diamond-square algorithm to create a height map. The results are still a bit rough as seen below, but a little bit more tweaking will probably allow me to make better height maps.
I'm also planning on having the code also run rivers based on the generated terrain. The script would randomly pick a point on the edge map. It would then find its way "down" the height map by checking all eight directions of that specific point for the "lowest" of heights. Alternatively, I could use A* pathfinding with a target somewhere in the center of the map with height being the pathfinding cost. It would then continue in this way until it reaches either a predefined lowest value, the target point, or the maximum river length. I also plan to make it so that as the river runs, it also erodes the land nearby by a predefined value thus allowing for the formation of canyons if multiple rivers run through an area.
Anywho, screenies of height map generation below:

Being from the third world, I reserve the right to speak in the third person.
Using Editor version wip 20170527 gfx_sdl+fb music_sdl