We try to do training classes for an hour each week until they have been through at least three levels. In that hour we never get bored or lose interest and it is a really good bonding time.
Other than that, we train in bits each day, and because I practice NILIF, every treat or reward is preceded by a command or two, including going out into the yard to play.
We also start as soon as a puppy comes home, so they are raised to expect it and tend to pay alot of attention to me, expecting commands at anytime.
As far as frustration, I've only ever NOT been able to teach one command, and both me and the dog got frustrated, but it was an extremely difficult command, so I dropped it. But normally if they don't catch on right away I will either gain help from an expert, or change what I am doing to make it more understandable, and use a food lure whenever possible.