In a saucepan over medium heat, combine the milk, butter and margarine. Heat until butter and margarine are melted, but do not let it boil. Stir in the 1/2 cup of sugar until dissolved, then set aside to cool to lukewarm.
Meanwhile, in a small bowl, dissolve 2 teaspoons of sugar in warm water. Sprinkle the yeast over the surface, and let stand until frothy, about 10 minutes.
Crack the eggs into a large bowl, and stir a little to break up the yolks. Slowly pour in the heated milk mixture while whisking constantly, so as to temper the eggs and not cook them. Add the yeast mixture, and stir just until blended.
In a large bowl, combine the flour, baking powder, mahleb and salt. Make a well in the centre and pour in the wet mixture. Stir until it forms a sticky dough. Pour onto a floured surface, and knead in additional flour as needed to make a more substantial dough. Knead for about 10 minutes. Place in an oiled bowl, and set in a warm place to rise for about 2 hours, or until doubled in size.
When the dough has doubled, punch down again, and let rise again until doubled. It will only take about half as long this time.
Separate the dough into 2 even portions, then separate each of those into thirds. Roll each of those into ropes about 30cm long. Plait the sets of three ropes together, pinching the ends to seal, and tucking them under for a better presentation. Place the loaves onto baking trays lined with baking paper. Loaves should be spaced about 10cms apart. Set in a warm place to rise until your finger leaves an impression behind when you poke the loaf gently.
Preheat the oven to 180 degrees C. Brush the loaves with beaten egg, and sprinkle with sesame seeds.
Bake for 25 minutes in the preheated oven, or until nicely golden brown all over.