Bring a large pot of water to a boil over medium-high heat. Meanwhile, cut 6 thick-cut bacon slices crosswise into ½-inch pieces. Place the bacon in a large Dutch oven or heavy-bottomed pot and cook over medium-low heat until browned and crisp, 8 to 10 minutes. Meanwhile, halve 1 medium yellow onion and thinly slice (about 1 ½ cups). Thinly slice 3 garlic cloves.
Transfer the bacon with a slotted spoon to a paper towel-lined plate; leave the bacon fat in the pot. Increase the heat to medium-high. Add the onion to the pot and cook, stirring occasionally, until starting to soften, about 5 minutes. Add the garlic and cook until fragrant, about 30 seconds.
Add 1 pound lean ground beef, 1 teaspoon of the kosher salt, and ½ teaspoon black pepper. Cook, breaking up the meat with a wooden spoon into bite-sized pieces, until browned and cooked through, 6 to 8 minutes.
Add 1 (about 15-ounce) can fire-roasted crushed tomatoes, 1 (10- to 15-ounce) can diced tomatoes with green chiles, 1 (8-ounce) can tomato sauce, ½ cup low-sodium beef broth or water, 2 teaspoons Worcestershire sauce, 1 teaspoon hot sauce, and ½ teaspoon chili powder. Reduce the heat to maintain a simmer and cook, stirring occasionally, until the sauce thickens slightly, 10 to 15 minutes.
While the sauce is cooking, add 1 pound dried spaghetti and the remaining 2 teaspoons kosher salt to the boiling water. Cook according to package directions until the pasta is just al dente, 8 to 12 minutes. Meanwhile, thinly slice 3 medium scallions (about ¼ cup).
When the spaghetti is ready, turn off the heat. Using tongs, transfer the spaghetti into the sauce; it’s OK if some water clings to the pasta. Use the tongs to toss the pasta until evenly coated. If the sauce is too thick, toss in some of the pasta water a few tablespoons at a time. Taste and season with more kosher salt, black pepper, and hot sauce as needed.
Serve topped with the bacon, scallions, shredded cheddar cheese, and sour cream if desired.
