Fill a large pot with water and bring to a boil. As the water heats, season it well with salt. You should be able to taste the salt in the water (like the ocean!).
Add the spaghetti and cook, stirring often to prevent sticking, until al dente.
Drain the pasta over a medium bowl, reserving about 1 1/2 cups of the cooking water.
Cut the guanciale into 1/2-inch pieces. Cook in a large, deep skillet over medium heat, stirring until crisp, 5 minutes. Transfer to paper towels to drain, reserving the fat in the pan.
Slice the onions crosswise thinly; chop the garlic. Add the EVOO, onions and garlic to the skillet; cook over low heat for 1 minutes. Turn off the heat and let cool for 1 minutes.
Whisk the eggs until well blended. Stir them into the onion mixture in the skillet.
Dump the hot spaghetti into the skillet. Using tongs, toss the pasta with the egg mixture. Add some of the reserved pasta water to thin the sauce.
Wait until the egg mixture has coated all of the spaghetti, then sprinkle in the cheese and guanciale and continue to toss, adding cooking water as needed.
Season with salt and freshly ground black pepper and toss well. Squeeze the lemon half over the pasta. Serve immediately.