your ~mix expression is a good place to start
to solve the "tempo" or "mood" issues you have a few options....
tag all of your music with a "mood" and/or "tempo". use "BPM" (an automatically calculated tag if you analyze audio). or, make a new tag (for example i use sub-genre) that is a list type and give it all the tags you want
for example (i use sub genres, although i do tag mood sometimes)
[Media Type]=[Audio] [mood]=[atmostpheric] ~mix=1000 ~nodup=[artist] ~sort=[last played],40%,{[Sub Genre]=black},40%,{[Sub Genre]=doom},20%,{[Sub Genre]=noise}
which will give me "atmospheric metal" with the percentage of sub genres i want...because i have the "black" sub genre in metal and in ambient, this will give me a playlist that has some ambient, noise, and metal tracks even though they all have much different Genre tags