What I find interesting about this thread is that I have never made a conscious effort to teach a dog its name. Including when I changed the name of the first male I rescued at just under two years old. I didn't like the name he came with, so I started calling him something else. In no time at all, he began responding to it. With pups, I just addressed them by their name and within a short time they recognized and responded to it. I can't say a time frame, but it wasn't long and I don't recall ever being concerned about it. (I have also changed the names of horses, as well as raising some from foals. I know they all knew their names, as when I addressed them by name in a group, the appropriate animal would pay attention)
I need to add, I never did teach pups with treats. Didn't seem to make any difference to the learning curve. Older dogs I have taught specific behaviours with food rewards…....I should say older Basenjis. My Border Collie and cross bred Shepherd/Husky and Shetland Sheepdog would all work well for praise!