Fry bacon until crispy in a cast iron dutch oven over medium high heat, until the fat has rendered.
Remove the bacon from the pot, but leave the bacon grease, and add the onions.
Saute the onions, stirring almost constantly, until clear and the edges are just starting to brown, about 5 minutes.
Add the garlic and stir until aromatic, about 2 minutes.
Add the chili powder, paprika, cumin and lemon zest. Stir to combine all the ingredients and simmer together for about 2 minutes.
Add the chopped pepper, the cranberries and a pinch of salt, stir completely to mix all ingredients.
Add the vinegar, lemon juice and brown sugar and stir well for a couple of minutes, until all the ingredients are combined.
Lower the heat to a simmer and cover for about 10 to 15 minutes, while the cranberries break down. Stir occasionally.
Remove the dutch oven from the heat. Using an immersion blender, reduce the whole cranberries into small pieces. The sauce will have a thick, paste like consistency at this point. (see Notes)
Let the sauce cool slightly, about 5 minutes, then process through a food mill set with its finest disc. Remember to scrape off the bottom of the disc and return that with all the processed sauce to the dutch oven. (see Notes)
Place the dutch oven over medium high heat and mix in the beef stock, starting with about 1 cup. Stir to blend together, adding more stock until you reach your desired consistency.
Reduce to a simmer, cover and allow it to simmer for about 15 minutes, stirring frequently. Add more beef stock to thin out the sauce, if desired. (If you need it to thicken, just simmer without the cover)
Turn heat off and allow to sit for about 10 minutes.