I have a young working cocker and he is super friendly with other dogs. I've found the off-lead etiquette quite tricky, but what I do is this:
If we are approaching a dog on lead, I put him on lead too, until I am close enough to see what owner says. If both like to play, take him off.
If we are approaching a dog off lead, I now let him go and say hello. But I'm confident in his recall, so if other dog isn't interested, we walk on and he will come with me.
We walk mainly through woodlands so generally on a path with obvious directions, so easy to walk on if the dog doesn't want to play. It's trickier in an open field I guess - I've only let him off lead once in an open field because that's not where we walk, but then there was another dog and I waited until he'd gone, because I thought Ddog might rush over to him and I wasn't 100% happy I'd be able to recall him from that far away, or manage moving him away from a reluctant dog in that setting.
I think in your situation, the other owner should have called their dog back much sooner. Equally, though, I'm quite nervous of other dogs, so if another dog was bothering mine, I'd put him on the lead and take him away, rather than risk him being hurt or biting another dog - regardless of what the etiquette is I don't think I could have waited for 5 minutes with my dog being bothered, I'd have got stressed much quicker. Potentially difficult, though, I guess, if the field was enclosed so it was hard for you to take your dog away.