In a large saucepan, melt 2 tbsp butter over medium heat.
Add the thinly sliced yellow onions to the saucepan.
Cook the onions, stirring occasionally, until they are tender and softened.
Add the chicken bouillon cubes, chicken broth, sea salt, and black pepper.
Stir frequently until the bouillon cubes are fully dissolved.
Reduce the heat slightly and allow the onion mixture to simmer gently while preparing the creamy sauce.
In a separate saucepan, melt 3 tbsp butter over medium heat.
Add the all-purpose flour to the melted butter.
Stir continuously until the flour and butter are fully combined and the flour is lightly cooked.
Slowly whisk in the whole milk.
Add 1/4 tsp salt.
Continue whisking until the sauce is smooth and slightly thickened.
Add the cubed Velveeta cheese to the onion soup mixture.
Pour the prepared creamy sauce into the onion soup mixture.
Stir until fully combined.
Continue cooking over low heat, stirring frequently, until the Velveeta cheese has fully melted.
Once the cheese has melted, reduce the heat to very low.
Allow the soup to cook gently for about 45 minutes, stirring occasionally.
Do not allow the soup to boil, as the dairy and cheese may separate.
Taste and adjust seasoning, if needed.
Ladle the soup into serving bowls.
Garnish with crumbled bacon and shredded cheese, if desired.
Serve warm.