The written win conditions don't seem to entirely match up with what happens in the game.
I have had some games where I have just focused on 2 caravans, got them above 21 and won the match - ignored the 3rd all together.
Ones where I have encountered odd issues have usually been where I have played a joker or Jack to remove cards from my opponents stack - particularly if that stack was already above 21 it seems to cause issues, and that whole caravan seems to get stuck. I've had one game where I had got to 26, 26, 25 and was throwing cards away until the game granted me the win, despite beating the opponent on 2 of the caravans, and drawing on 1 for 3 turns each.
As for the logic of the win conditions - winning 2 caravans should be enough - the 3rd is irrelevent, and certainly from the speed at which the AI is able to win some matches they do not wait for all 3 to be "complete" before being granted the win
For your first one, if your opponent got the 3rd one between 21 & 26, then that means that all 3 caravans were sold.
For your second one, I haven't seen happen. If you're at 26, 26, 25 and the game wasn't over, that would tell me that one of the caravans was tied with your opponent.... which means all 3 caravans weren't "sold" even though the bids were high enough for it to be sold. There has to be a clear and decisive value on each caravan for it to be sold.
For your logic comment, that's how they made the rules, and I don't see an issue with it. If your opponent quickly gets 2, it gives you a chance to drop or tie one of his enabling you to go on to win. Assuming the AI would play smart (which they don't), changing the win conditions would completely change the game (in my opinion).