I think it depends on whether you have access to contact equipment at home. With access to the equipment all the time (several times a day), back-chaining should work very well, however I do not think it works as well if you are only able to do it once or twice a week at club.
Jay was was originally taught using your number 3 method (walking over on lead and making him stop at the bottom and putting him back on if he got off). I was not happy with the resultant contacts, it was very hit and miss and as he is a fast, high drive dog who likes to take control I needed something more, to control him.
I have now retrained him from scratch using a target on the down which he had to touch his nose on to get into the 2 on, 2 off position. The dog must know about targeting away from agility before you introduce them at agility. Place the target about a foot away from the down contact, maybe slightly less. Then give your 'target' command as they are coming down the contact. Your target command then becomes the contact command. The target makes them keep their head down and aim for the floor which should result in a dog that is less likely to 'ping' the contacts. The dog should not move from the position until you have given their release command. To reinforce this I gently tug his collar (without releasing him), and if he moves I just re-position him.
I firmly believe that an element of muscle memory/strengthening is required in order to hold the dog stable, particularly on the a-frame, until they have developed this they may try to stop with the front end but cannot quite hold the back end and they will appear to 'slump' off the contact.
Once Jay was firm in his 2o-2o position with his nose on the target, I began to run past him into the position I would like to be in during a competition and make sure he stays on the contact. If he does move, I just put him back on. If he stays there, I go straight back and praise him, and release him. Also run diagonally away from the dog, and try hanging back too.
Once that is rock-solid (and only when), I begin introducing the occasional running contact (by using an early release command). A good way to do this is to set up 'grids' where you do a circle of jumps with a contact as part of the circle, and go round and round, running some contacts, holding others. Always finish with a held contact.]
I faded the target by gradually using smaller targets, and then just chicken on the floor. I did this as soon as I was confident Jay knew what to do on the contacts (get to the end and stay in position until told). This will take different amounts of time depending on the dog.
If I was training a new dog now, I would not compete until I could do all of the above. The best way to lose your contacts is to go in the ring under pressure before your dog is ready.
Just to add, I think that perfectionism is the best way to get great contacts. Decide on what you what you want the dog to do and always insist on it. Make it as blacka dn white for the dog as possible - "if you stop here in this position you will get praise in some form. If you don't stop in this position, you don't." Some dogs will be so eager to get on with the course that they will stop with perhaps one foot on the contact - "Oh i really am trying hard mummy" - but if you want 2o-2o position, go to them and put them in the position and then praise them. My dog sees contacts as a great game with rules - he tries to push the rules sometimes (as above) and then enjoys trying to prove that he can get it right!
I hope that makes sense, I may have missed stuff out so please ask if it doesn't make sense!