In the bowl of a stand mixer fitted with a dough hook, combine 2 cups flour, yeast, and salt. Lightly mix together with a spoon.
Add lukewarm water, honey, vegetable oil, eggs, and egg yolk. Mix on medium-low speed until combined, scraping the sides of the bowl as needed. You will have a wet batter.
Add another 2 cups of flour and continue to mix on medium speed until the dough thickens and becomes sticky, about 15 to 20 minutes. Again, scraping the sides as needed.
Remove the bowl from the stand mixer. Prepare a large, clean area by covering it with ¼ cup of flour so the dough doesn’t stick. Scoop out the dough and knead by hand for another 10 to 20 minutes, or until the dough absorbs all the flour and is smooth, elastic, and minimally sticky. (To test the dough, use your finger to poke the side of the dough, if it springs back quickly, it is kneaded enough. However, if the indentation remains and does not spring back, continue kneading until it does.)
Grease a large bowl with 1 tablespoon of additional vegetable oil. Add the dough and coat it in the oil on all sides. Cover the bowl with plastic wrap and allow the dough to rest on the counter until it has risen to double its size, about 2 hours. (The speed of rising will depend on the warmth of your kitchen. It could take the dough 2 to 3 hours to double in size.)
Once doubled, remove the dough from the bowl and split into 4 even-sized pieces. Roll each into a ball.
Roll each ball into 4 long, even strands. Each about 15 inches long.
Create a lattice with the dough by arranging the strands to form a “hashtag” (#) with 2 strands laying horizontally and 2 strands laying across vertically. Pull back the top right vertical strand and tuck the top right horizontal strand underneath. Then, pull back the bottom left vertical strand and tuck the bottom left horizontal strand underneath. The crisscrossed strands should be almost touching, leaving very little space between each one. There should be 2 strands at the top, 2 to the right, 2 at the bottom, and 2 to the left.
Take the bottom right strand and pass it over the strand to its right. Continue counterclockwise until all strands are crossed once. When done, there should be 4 pairs of twisted strands.
Beginning with the bottom right pairing, take the strand that is underneath and pass it over the strand directly to its left. Continue moving clockwise this time until each strand is almost entirely braided.
Tuck the remaining, unbraided, ends under the loaf of dough to complete the circle.
Carefully transfer the braided dough onto a parchment-lined baking sheet. Cover loosely with plastic wrap and let rise in a warm place for another 1 to 2 hours, or until it is about 1 ½ times its original size.
Towards the end of the rising time, preheat oven to 350 degrees F. Set your rack in the middle of the oven to ensure plenty of space for the challah to rise.
In a small bowl, whisk 1 egg. Brush egg liberally over the top of the risen dough, covering the entire top. (You may not use the entire egg.) Sprinkle the top with sesame seeds or other toppings, if desired.
Place the baking sheet, with the dough, on top of another same-sized baking sheet to protect the bottom of the bread from browning too quickly. Place the doubled baking sheet in the oven. Bake for 20 minutes, remove from the oven, and loosely cover the top with foil to prevent the outside from over-browning. Bake for another 25 to 35 minutes, or until a thermometer inserted in the middle reaches 190 to 200 degrees F. Remove from the oven and place on a cooling rack to cool completely before storing.