After a bit of style sheet spelunking I believe I have a solution. It is far from well tested at this point but I'm encouraged.
One reads in
Core.nb under the FormatType Styles section:
The cells below define styles that are mixed in with the styles of most cells. If a cell's FormatType matches the name of one of the styles defined below, then that style is applied between the cell's style and its own options. This is particularly true of Input and Output.
From this it becomes clear why the styles one creates for
Output are not respected. That leads me to my proposed method. The template for the private style sheet is as follows:
The code for the top cell, placed above the base style sheet cell, is:
FontFamily -> Inherited
This changes the way that the
"Output" styles work. Now you create font style cells for both, e.g.:
FontFamily -> "Courier"
FontFamily -> "Trajan Pro"