In a medium saucepan, combine the rice, 3 cups of the whole milk, sugar, and salt. Bring the mixture to a boil over medium-high heat, stirring occasionally.
Reduce the heat to low and simmer the rice pudding, stirring frequently, until the rice is tender and the mixture thickens, about 30-35 minutes.
In a small bowl, whisk together the remaining 1 cup of whole milk and the egg yolks until smooth.
Gradually pour the egg mixture into the saucepan with the rice pudding, stirring constantly to prevent the eggs from scrambling.
Continue to cook the rice pudding over low heat, stirring constantly, until it thickens further and coats the back of a spoon, about 5-7 minutes.
Remove the saucepan from the heat and stir in the heavy cream and vanilla extract.
In a separate small bowl, mix together the brown sugar and ground cinnamon.
Spoon the rice pudding into individual serving dishes and swirl the cinnamon-brown sugar mixture into each serving.
Allow the rice pudding to cool for about 15 minutes before serving. The pudding will continue to thicken as it cools.
Notes
I would probably use a rice such as Arborio. For a richer pudding, you can use half-and-half or a combination of whole milk and heavy cream instead of just whole milk.If you prefer a smoother texture, you can blend the pudding with an immersion blender.