Only defer top-level functions (#18718)
This makes deferral logic more robust and more consistent with
fine-grained mode. I also:
* Change some terminology, as "top function" is ambiguous: top-level
function vs top of stack function.
* Update some docs and type annotations to match actual behavior (e.g.
we do not defer lambdas)
See also https://github.com/python/mypy/pull/18674 for some more
motivation.