I think I'd win a ribbon for most gradual weaner...hmmmm, that doesn't sound good and I don't know what color the ribbon would be...but.....
I start when they're about a month old--one of my mares gets mean if her foal tries to eat her food about then. So when the two mares come up for dinner I get the foals in the habit of eating separately from their moms. Babies eat Contender, moms eat Gro N Win. The foals, and mares, seem to look forward to this brief break. I extend that dinner break to 30 minutes after several weeks--but I'm always there in case someone decides they need to be back together.
Then at about 4 months I start separating them when they change pastures in the late afternoon. (They get bored in the same old pasture all day, don't cha know.
) Everyone is right next to each other, and no one seems to even notice because of the dinner separations. The times are gradually increased from there, until at about 5 months the foals spend the nights away from moms, but they are in a situation where they can groom over the mares' stall doors. Once that's lasted 2 nights, I check the mares' udders and might let foals sip to relieve pressure, but if the foal is uncooperative about it--meaning she drinks mama dry before I can stop her--I'll milk the mare out just enough so it's not uncomfortable.
I found out last year that foals are much happier if they are pastured beside their dams, rather than in an adjoining pasture where they can't see her quite as easily. Claire whinnied for her dam the first day apart, but once I moved her beside Chloe she was quiet. Another lesson learned.
And that is how I wean babies.