Added a threaded cleanup, so cleanup only works while there are active voices