Sauté the aromatics. Melt the butter in a large Dutch oven or heavy pot over medium heat. Add the onion and cook until soft and translucent, about 5 minutes. Stir in the garlic and cook 1 minute more.
Make the roux. Sprinkle the flour over the onions and stir constantly for 2 minutes. It will form a thick paste. This step cooks out the raw flour taste and is what gives the soup its body, so do not rush it.
Whisk in the liquids. Slowly pour in the half-and-half, whisking constantly to keep it smooth. Then whisk in the chicken broth. Bring to a gentle simmer, stirring often, until the soup thickens slightly, about 5 minutes. Keep it at a bare simmer, never a rolling boil.
Add the vegetables. Stir in the broccoli, carrots, Dijon mustard, salt, pepper, and nutmeg. Simmer gently for 15 to 20 minutes, until the broccoli is tender and the carrots are soft. Stir occasionally so nothing sticks to the bottom.
Melt the cheese, off the heat. This is the critical step. Remove the pot from the heat entirely. Add the shredded cheddar a handful at a time, stirring until each addition melts before adding the next. The residual heat melts the cheese into a silky emulsion. If you add cheese over active heat, it can separate and turn oily.
Finish and serve. Taste and adjust salt and pepper. The soup will thicken a bit more as it sits. Ladle into bowls, or hollowed-out bread bowls if you want the full experience, and serve immediately.