1.) lässt Du aufm Controller in der main laufen
2.) Geht quasikonstant im Timer Interrupt
3.) Geht geteilt im Timer-Interrupt über ne kleine State-Machine
4.) dito
5.) AD-Interrupt
6.) Port-ISR

Sollte sich alles mithilfe eines seriellen Fifos parallel auf'm ATXMega erledigen lassen, wobei ich den Verdacht hege, die Serielle wird mit 112kBaud ein Nadelöhr.

Nein, ich würde dafür auf'm Controller kein Mutithreading verwenden. Einfach, weil es bei Deinen Simulationsbedingungen nicht die kleinste wirkliche Asynchronität gibt. Sprich, es geht nur um die 100%ige Auslastung des Controllers, die ist mit dem Anteil in der main() gegeben.