In a 12-inch nonstick skillet, cook bacon over medium, turning occasionally, until golden and crisp, about 5 minutes. Transfer bacon to a paper towel-lined plate and pour the bacon fat into a small heat proof measuring cup; add enough olive oil to make 1/4 cup. Wipe out skillet.
In the skillet, heat 2 tablespoons of the bacon oil over medium-high. Add half of the zucchini and half of the onion and season with salt and pepper. Cook, stirring occasionally, until golden and tender (but not mushy), about 5 minutes. Stir in 1 teaspoon of the garlic, then transfer mixture to a small bowl.
Repeat with the remaining 2 tablespoons bacon oil, zucchini, onion and garlic. When the second batch is done, return the first batch to the skillet; add 1 tablespoon of the butter and 1 tablespoon of the lemon juice, season with salt and pepper and mix well. Turn off the heat.
Meanwhile, cook pasta in a large pot of salted boiling water according to package directions until al dente. Reserve 1-1/2 cups of the pasta water and drain.
In the large pot, combine pasta, 1 cup of the reserved pasta water, the zucchini mixture and the remaining 2 tablespoons of butter and cook, stirring vigorously, until the sauce thickens, about 2 minutes. Turn off the heat and stir in the remaining 1 tablespoon lemon juice and the cheese, adding more reserved pasta water for a thinner sauce, as needed. Season with salt and pepper.
Divide pasta among bowls. Scatter the bacon over the pasta. Top with more cheese and herbs, if using; serve warm.