the issue with PreloadJS sounds like the fail timeout, which occurs when a fileload is attempted and no response is received. I have not heard one way or the other if loading audio works from applicationCache, but it sounds like PreloadJS is trying to load it externally rather than from appCache. It could have something to do with WebAudio needing to use XHR for loading audio, whereas video would use a tag.
Here is a related post that might have some answers.
Hope that helps.