Thanks a lot for your suggestions, @Arjaan! It seems that Option 2 will fit best my situation.
I was also thinking of using form but I tried to make the bot more “clever” first, that it will recognize the artist from the initial user input. But using form is great for fallback when no entity will be extracted e.g. in case user asks can you play some music? as you mentioned. 
One last question just for curiosity. If Spacy entity PERSON would be used to annotate bands in play_artist intent:
## intent:play_artist
- play [Rage against the machine](PERSON)
then it would probably extract Rage against the machine as PERSON entity also from user’s input “send message to Rage against the machine”, right?