refactored code slightly, and added assertions to ensure that all access to the multi is going through the serial queue
fixed deadlock caused by a bit of a cockup with the refactoring...