I'm as puzzled as you about what causes a great or awful run. I used to journal mine and couldn't find any pattern at all uniting those in-the-zone sessions. Currently wondering whether it might be to do with carbs eaten at the last meal? Anyway, I'm sure someone can answer that better than me.
The tempo thing, though, I do understand!
When I first started running, I spent AGES researching optimum BPMs (beats per minute) and testing all my songs against my natural rhythm, etc, to try to match them up. I found though, that when my energy level was lagging, the songs that pulled me up weren't those with an ideal tempo, but those that just made me feel good! The ones that got me singing along in my head (and yes, occasionally out loud!) and that made me smile. So now I just go with those and ignore the tempo altogether. Would be interested to hear what others do?