Melt butter in a large pot over medium heat. Add onion and cook, stirring regularly, until soft (about 5 minutes). Sprinkle flour over the onion and cook, stirring constantly, for 1-2 minutes.
Slowly whisk in the chicken broth until incorporated. Add broccoli and carrots. Cover, reduce heat to low, and simmer for 15-20 minutes, or until the broccoli is tender, stirring occasionally. Remove from heat.
Season with salt, pepper and paprika.
Use an immersion blender to puree a small portion of the soup, leaving plenty of visible broccoli florets and carrots in the soup for a little bit of texture.
Return soup to very low heat; whisk in the Dijon mustard, hot sauce (if using), Velveeta, cheddar, and half-and-half. Cook, stirring regularly, until cheese is melted and soup is warmed through (about 5-7 more minutes). Do not boil. Ladle into individual bowls, garnish with fresh parsley, and serve with warm, crusty baguette.