The PlayingInstance now keeps track of its state, including
asynchronous states like "stopping."  This is used to better
handle race conditions and edge cases.

This should finally clear up the sound bugs - except for the
ones I haven't found yet! :)