Thank you for the reply Ashley !
I recognize that Canvas+ is not officially supported, but my choice to use it is well-informed. To me, what makes Construct 2 wonderful is not simply the workflow or the 'officially supported platforms', but the open architecture that makes it easy to tailor the output to one's specific needs. In my case, it allows me to easily add features for a deprecated non-browser wrapper. How can Construct 2 be any more awesome?
That said, could we revisit the code I've written and why it may not be working how I expect? All I wanted here was a push in the right direction or a thumbs-up-that-looks-fine from someone that understands Construct 2's Audio object well and perhaps some of how Cocoon works as well. You are one of the best people to give me this feedback and if you find the time to reply again, your help and general comments on my code would be immensely appreciated.
In addition, it could be that my code is correct Construct-2-wise, in which case I may have used Canvas+'s dispose() overload incorrectly. I've seen that ludei is sometimes active around here, so some feedback from them would also be very helpful.