Add about ½ tablespoon oil to a large skillet over medium heat. Add the chopped onion and cook until softened, about 5 minutes. Add the minced garlic and cook for 1 minute more until fragrant.
Add the ground beef to the skillet and cook, breaking it up with a spoon, until browned. Drain off any excess grease. Add the tomato paste to the center of the skillet and cook for 1-2 minutes before stirring it into the beef.
Add the ketchup, brown sugar, mustard, Worcestershire sauce, chili powder, tomato sauce, salt, and pepper. Stir well to combine. Bring the mixture to a simmer, reduce heat and cook for about 5 minutes, or until the sauce reaches your desired thickness. Taste and adjust seasoning as needed.
Spread softened butter on one side of each slice of bread. Place four slices of bread, butter-side down, in a large skillet or on a griddle over medium heat. Top each slice with about ¼ cup shredded cheddar and one slice of American cheese.
Spoon a generous amount of the sloppy joe mixture onto the cheese on each slice of bread. Place another slice of American cheese over the meat mixture. Top with the remaining slices of bread.
Grill for 3-5 minutes per side, pressing gently with a spatula, until golden brown and the cheese is melted and gooey. Work in batches if needed.
Remove from the skillet, cut in half, and serve immediately.