New mixer API

For you interested. Still work in progress. Do not merge.

Addresses #665.
Should we also have a bare except in this chain so we can log the traceback and re-raise? Think we had this before but removed it since it was "silly" when running from the CLI, but makes a lot of sense when running as a service. Or do we have something else which already handles these cases?