
I'd start from scratch with the waiting - start in a boring place, home is usually the best as he's used to it, and start building it up as you would a new dog. When you've got, say, a minute under his furry belt, then start at a few second again and start adding distractions - boring kibble next to him, you moving around, and build it up again until he won't move while you're waving arms, leaping about, throwing toys (loo rolls to start, building to his favourites or something similar). Don't try to progress too quickly - set yourself clear goals, such as 5,10, or 15 seconds and build it up a couple of seconds at a time, and don't move on until he's consistent at each step. Once he's fine indoors start moving outdoors - but, you will probably have to go back a step in a new environment and build it up again. When he's really steady just about anywhere (I have a list of places to train, different environments and I work through them for each cue), then you can introduce the dummy. Again you might have to back up a little and build up to where you were before as obviously the dummy is very exciting for him!
As for the recall - basically the same thing, although with a good start now you probably won't need to go right back to the start. Make a list of everything that distracts him during a recall, work out the least thru most distracting and try and set up situations with each, working up to the most distracting - dogs, I assume! Again, don't move on to the next until he is consistently recalling from the previous, slightly less distracting thing. If you find yourself in a situation with loose dogs and him running to them - don't use your normal recall cue! Sounds odd, but it'll teach him that he can ignore it (you may have a bit of work to do already to unteach him that), and every time he does it gets harder to retrain. With my dogs I have a few different cues - their names or an individual whistle (not using one, I whistle I mean) for low distraction situations, or two pips on an acme whistle for high distraction, there's a fair bit more training going into that one than their names so that I know they've got a solid recall even if they ignore their names.
Be thankful he's going to say hello to a potential friend - I've just taken on a new dog, also not well socialised as a pup (she's 5), and she reacts very badly to strange dogs. IMO it's easier to train a recall in a dog that doesn't see other dogs as a threat than one that thinks she needs to see them off immediately!