Hmm. Meine Idee (was auch ins bestehende Konzept ganz gut passt):

Es gibt eine "Auswerter"-Klasse für die Aufnahme. Die wird einmal oder mehrmals als Modul (Objekt) erzeugt.

Jedes Modul macht eine Datei und weiß, wann es mit der Aufnahme aufhören soll. Die kommen dann in eine Warteschlange (technisch: vector) und bekommen dann schön nacheinander die digitialisierten Daten übergeben. Dann kann jedes Modul für sich die Aufnahme auf die HDD schreiben. Egal, was die anderen machen.

Ist die Aufnahme fertig müßte sich das Modul aus der Warteschlange abmelden.

Ungefähr so:

Sound-Device (Block aus Float-Werten) -> [Auswerter-Module] -> Aufnahmemodul 1 -> Aufnahmemodul 2 -> Aufnahmemodul 3 ...

Muss ja nicht jedes Modul für sich ständig neu digitialisieren. Machen die Auswerter auch nicht. Die bekommen die digitalen Daten auch fertig präsentiert.