You're only joining 3 tables tough, i find it a bit odd it would take this long, but i can only say for sure after i've inspected your database.
$35 an hour ? lol .OP the problem doesn't seem to be that tough neither the query is complex.I would fix the issue for $10 and provide you the most optimal run time of it.Unfortunately I don't have time on me but I will try and send you a fix maybe tomorrow.
If you wish to save your $35 ,go to freelancer.in ,any Indian will get it done within seconds for as cheap as $5.
I'm sorry you feel the need to ridicule $35/hour, this is the common rate for dba work in my country.
I haven't analysed the problem yet, but if you offer to do it for $10, the OP is still free to chose you.