In a large heavy pot, over high heat, brown the beef, about 10 minutes. Drain off excess oil, leaving the beef and a little oil for cooking the onions. Add the onions, chili powder, cumin, cayenne, chipotle, cinnamon, crushed red pepper, and bay leaf and cook, stirring often, until the onions soften, about 8 minutes. Add the garlic and cook until fragrant, about 30 seconds. Add the beef stock and cook for a minute. Add the tomatoes, tomato paste, salt, pepper, and brown sugar to the pot. Stir well and bring to a boil. Reduce to a simmer and cook until slightly thickened, about 1 hour, stirring occasionally to prevent the chili from sticking to the bottom of the pan. Skim off as much fat as possible. Add the beans, return to a simmer, cover, and cook until thickened, about 1 1/2 hours longer. Serve with sour cream and cheese alongside as garnish.