Bring a large pot of water to boil for the pasta.
In a large heavy bottom skillet, cook bacon until crisp. Remove bacon from pan to drain on paper towels. Pour off any excess bacon grease leaving about 2 tablespoons.
Slowly pour in milk and whisk to remove any lumps. Turn off heat. (This should look like a thick sauce or even closer to a paste. Don't worry, thats normal and how it's supposed to look!) Stir in half the cooked bacon into sauce. Set aside.
Saute onions and garlic until tender, 5 minutes. Sprinkle flour over onions and garlic and stir to create a paste.
Drop pasta into salted, boiling cooking water.
In a large bowl, stir parmesan cheese, egg and egg yolk together. Cut butter into small pats.
Remove about 1 cup of pasta water and drain pasta completely. Immediately pour hot pasta into large bowl with egg mixture. Using tongs, start to toss pasta. Pour in onion 'paste' and continue to toss. It is at this point where you can start to pour in some reserved cooking liquid to get the smooth saucy consistency you'd like.
Stir in pats of butter with salt and pepper. Continue to toss until butter has melted. Serve immediately with remaining cooked bacon and more parmesan cheese.