As it has been said, the run doesn't hang, it wait for an agent to be free.
Usually when it stuck for too long, there will be a probleme in the agent machine, try to check logs.
You can use tags in order to match between the run and the agent capable to run it.