You said:
"Put another way my instantaneous ceiling could be 20m (#1), but my "actual" (bad name) ceiling could be 15m, because as I ascend from 80m I offgas and I would be able to continuously ascend at whatever my configured ascent rate until I got to 15m and had to stop."
This is exactly what happens. The computer is calculating a ceiling based on the inert gas you've accumulated at the current depth. As you ascend, because of lower ambient pressure, your tissues are off gassing so that if they off gas enough the new calculation for ceiling becomes 15 ft instead of the current 20 ft. So, you and I agree it is point #2 in my post above.
Then you said:
"Meaning you could have a non-zero ceiling but still have an NDL > 0, because the ceiling will go away as you ascend."
No. I assume you mean a positive non-zero ceiling. By very definition an NDL > 0 means you can ascend directly to the surface without stops and with a positive non-zero ceiling stops will be created at the current depth. Keep in mind that the NDL calculation for time remaining at depth knows nothing about ascent rates. It is, by definition, a calculation of time remaining at the current depth.
Just to be clear there is no calculation of NDL or deco depth based on a pre-defined ("assumed") ascent rate built in to the computer when the calculations are done before an ascent. The calculations are done on a fixed computer cycle at whatever depth the diver is at. When the diver ascends subsequent calculations take into the off gassing so that NDL time increases or deco depths decrease. Is this clear enough?