Nice post Bleazle. I like this type of stuff!
Be careful about your If >> LastActionSuccess. It should follow immediately after the MM call to get the artist name, not after the OSD action which will always succeed.
The simplest solution for your problem is not a full solution, but you can add the Special parameter to the MM.LoadBySQL action with a value of "Mix". This would keep playing the current song, also keep the existing playlist, but shuffle the new tracks (songs rated>60 by the current artist) into the remaining playlist. I have a similar command where I say "Mix in songs by artist {1}"
I thought I had also created another special parameter value for MM.LoadBySQL other than "Mix", but it seems undocumented so I will need to check. If possible it would be good to have a playNext option or something similar.
Finally, it is probably possible to find a clever work around, where you set a variable with the artist name that you want, and then create a command that is triggered by MM.TrackEnd
This command would (at the end of every song) check to see if there was a value stored for the artist, and if so, create the new mix, and then clear the variable. Not ideal but it would work.