tl;dr users shouldn't have to deal with debug output just to see tracebacks.
Adding tracebacks to the debug level was a convenient backwards compatible way to implement tracebacks partway through the dev cycle, but it conflates two concerns which are not always tied together.
We could add this in 1.x by adding a new output level just called eg exceptions, and either way it should be kept in mind for 2.x's logging setup.
I could help by adding "exceptions" log level to the 1.x (master).
I looked for output.debug in the code and there are only a few occurrences. It seems like this (https://github.com/fabric/fabric/blob/a1e86d5435c07b8f83737d7523bcf74265227696/fabric/utils.py#L329) is the place where debug level is used together with printing an exception. Do you think that this is the only place (outside of tests and documentation) that needs to be adjusted?