Put a heavy-bottomed pot (with a lid) over medium-high heat. Add the bacon and cook, stirring often, until the fat renders and bacon begins to crisp, about 6-8 minutes. Add the onion and cook until softened, about 5 minutes more. Stir in the ketchup, tomato puree, brown sugar, vinegar, Worcestershire, salt, pepper, and cayenne and mix well. Bring to a simmer and cook for 5 minutes. Stir in the beans until well coated, cover, and bake in the oven for 1 hour. Remove the lid and continue baking until sauce thickens and the beans begin to brown, about 15 minutes more. Remove from the oven and allow to cool at least 15 minutes before serving.