How about instead of looking for a random army that is in a region and guessing it's strength, or as an addition to the current system you could have a way of system of "register this army for pvp" and if 2 matching armies are registered, you would jump straight into the battle. You would have to willingly submit to pvp and would get a few seconds warning to allow you to finish whatever you were doing instead of the current, now I need to queue some knights in my stables, oh.. idle workers..what? - change to world view with 2 options: fight or pay. - oh great someone decided to attack me.
Perhaps you could see the army strengths that are currently queued for pvp/pve optionally with player names(I personally would prefer if people couldn't see player names, just army strength).
The current system would still apply if noone was queued and for city sieges, but having pvp with 2 people who want to do pvp is more fun for both rather than the poor guy who was just recovering from a loss/returning from a pve quest being pulled into a battle, with someone seeking pvp.