In the bowl of a heavy-duty mixer, combine the water, honey, and yeast. Allow to stand for 10 minutes. Add the salt, butter, margarine, and eggs and mix to combine. With the mixer running, add the flour, 1 cup at a time, until the dough is very soft (too soft to knead with your hands), is pulling away from the sides of the bowl, and barely sticks to your finger. Allow the mixer to knead the bread for 7 minutes, then let the dough rest for about 10 minutes.
On a lightly floured surface, divide the dough into four equal parts* (or two if you want to make two giant loaves of challah). Line 2 baking sheets with parchment paper and spray lightly with non-stick cooking spray.
Take one of the portions of dough and divide it into thirds. Roll/stretch it into a rope about 15-18 inches long and repeat with the remaining 2 pieces. Lay the three ropes next to each other and braid the dough, tucking the ends under the loaf. Place the braid on the prepared pan and repeat with the remaining dough portions (you'll have 2 braids per pan).
Cover the pans and allow to rise for 1-1 1/2 hours or until doubled.
While the dough is rising, whisk together the egg and vanilla. Preheat oven to 350. Before placing in the oven, brush the dough evenly with the egg wash. If desired, sprinkle with poppy seeds or sesame seeds. Bake for about 25-30 minutes or until golden brown and the loaf sounds slightly hollow when you tap on it. Remove from oven. Great for sandwiches, toast, snacking, and gift-giving.