implement @as_subprocess, test additional terminal types, resolve related previously failing tests.

and pull in bugfix-1, -2, and -3, which can only be tested using this decorator.