Use iteration rather than recursion to minimise stack trace sizes
Use more specific exception class
Gracefully handle situation where FX bus was unable to be allocated:

* Simply calls the fx block without setting up any FX synth chain