More work decoupling the execution support (i.e. foreground/background) from request handling.

This opens the doors to executing pieces of work that aren't about request processing (i.e. scheduled jobs, test use of http client). The docs are in a bit of a mess after this and will be addressed in a subsequent commit.