Rinse the rice by putting it into a bowl and covering with water. Tip into the sink to pour out the water, using a fork to stop the rice from coming out. Repeat 3 times, the third time letting the rice soak in the water while you prep the grits.
Add the cornmeal to a bowl and cover with excess water. Stir, and you will see some darker brown bits floating at the top. Use a spoon to scoop out the floating bits. Strain by tipping into the sink, then add more water and repeat. Strain again mostly, but leave enough water in the cup to just almost cover the cornmeal so it can soak a bit while the rice is cooking.
Bring the broth and water to a simmer in a medium to large pot or deep pan.
Strain the rice the last time, and add it to the broth (don't worry if a little water remains with the rice)
Stir and cook at a low simmer for about 20 minutes.
Strain any excess water from the cornmeal and add it to the pot. Stir to combine. Add in the milk. Continue at a low simmer for another 30 minutes.
Taste and assess - all rice and cornmeal cooks a little different. Is it cooked enough? Do you need more liquid? You could add more stock or milk or water if needed and depending on how you like it.
Once you are happy with the texture, add in the butter, salt, and pepper and stir to combine. Taste one more time and adjust seasonings to your taste.
Serve and top with the egg, butter, scallion, shallot, and chili crisp to your taste!
Notes
Nutrition calculation does not include the toppings