I am flat out convinced it will fill rooms based on ping to anyone currently in the room...
... otherwise there is no need to look for a "best host".
And the constant changing of hosts between matches makes it impossible for a room to remain stable and playable for any length of time.
* Search based on party leader.
* Fill rooms based on ping to host.
* Quit changing host unless he leaves.
All I know from playing with parties often is that the game seems to pick the party leader as host most of the time.
You could give party host to a player with a connection not suitable for hosting (i.e low bandwidth, high ping etc) and they'll still end up hosting for some odd reason.
So if you're playing in a party, it's best to pick someone who has a suitable connection for hosting.