You can mix this dough by hand or use a stand mixer with the dough hook
Proof yeast by putting it in the same bowl you'll be using to mix your dough. Pour warm milk and warm water over yeast and let stand 10 minutes to activate (it should be foamy). If you're using instant yeast you can skip this step, see notes*
Add all of the remaining dough ingredients to the proofed yeast mixture and combine until no traces of flour remain. Knead until a very smooth, soft dough has formed. This is a soft dough and If you're using your mixer it will stick a little to the bottom of the bowl, that's normal. If you're kneading by hand keep your hands lightly floured and I find it helpful to use a bench scraper to lift and turn dough during kneading.
Once dough is smooth, place it in a lightly greased bowl and cover with a clean towel until doubled in size. This should take 45 min-1 hour, but go by the size of the dough over the amount of time it takes. If you're kitchen is warmer it may rise faster, if it's cool it could take longer.
While dough is rising get whichever topping you've decided on ready and line a baking sheet with parchment (if you don't have parchment, use a greased baking sheet)
Once dough has doubled, push on it gently to deflate and place on a floured work surface. Pat dough into a rectangle about 22" long by 8" wide.
Cover dough with your selected topping, leaving a 1" border around the edges. Starting on long side, roll dough up making sure to keep filling inside. Pinch seam to seal and place, seam side down, on prepared baking sheet.
Starting 1" from the end of the log, use kitchen shears or a sharp knife to make a 1" deep cut down the center of the dough to within 1" of other end.
Keeping the cut side up gently shape dough into an "S" shape, tucking the ends under the center of the "S". You can use your fingers to slightly "open" the cut portion for a more spread out final look once baked or leave it as is.
Cover and let rise in a warm, draft free place until doubled (again, go by size rather than time), 45-60 minutes. prepare egg wash by beating one egg with one Tbsp water in a small bowl.
While rising preheat oven to 350. Once doubled, brush all over with egg wash and sprinkle with coarse sea salt (skip salt and use Everything Bagel seasoning if you're making the caramelized onion version).
Bake 35-40 minutes. You may want to tent it with foil after 20-25 minutes if it looks like the filling is getting too dark.
Transfer to a wire rack to cool.