It's for sure sort of timing issue :
In Bassengine code (the stop is started in a separate thread) and , xxxit's : 'HandleSongEnded();' that init '_state = PlayState.Ended;' and then it stop the stream when it was already started, so need a second click to start it again.