Don't beat yourself up about it, we've all been there or had times when our dogs haven't behaved as we would wish, and I hate to say this but there will probably be a few more times when you want the ground to swallow you up. Just take a deep breath................and remember that its just a phase that he's going through.
Recently took Roly and Misha to their first agility competition, where Misha was a perfect angel and got clear rounds, however Roly got eliminated from all 4 of his runs, purely because he just wanted to run around the arena as fast as he could doing the occassional jump and going and saying hello to everyone including the judge - nothing like failing with an audience and 4 times aswell
Recall using a whistle is so much easier than shouting after your dog. By using a whistle there is no emotion in it, you can't sound angry when you blow (even though you might be). It's difficult not to sound angry when you're shouting after your dog, and dogs can sense it. I have a similar problem getting Lexi back and one of things I do is to start running in the opposite direction once I've whistled, works very quickly with Roly, Misha and Ellie and generally Lexi will follow too.
Of course there are those times when your dog does a perfect recall or stop and there is no-one about to see it
Would also add that most dog owners are quite understanding, but as with everything there is always the odd few that aren't.