In a large, heavy saucepan (around 4 quarts), combine the milk, rice, sugar, butter, vanilla extract, and salt.
Bring the mixture to a boil over medium-high heat. Once boiling, reduce the heat to low and simmer the mixture, uncovered, for about 1 hour. Stir every 10-15 minutes to prevent the rice from sticking and to ensure the pudding thickens evenly. The rice should be tender, and the pudding should be thick and creamy.
While the pudding is simmering, whisk the eggs together in a medium bowl until they are well combined.
Just before the pudding is finished cooking (after about 55-60 minutes), slowly add 1 cup of the hot pudding to the whisked eggs, whisking constantly as you pour. This slowly tempers the eggs, preventing them from scrambling when added to the hot pudding.
Once all the hot pudding has been incorporated into the eggs, pour the egg mixture back into the saucepan with the remaining pudding. Stir well to combine.
Then, stir in the cup of heavy cream.
Pour the rice pudding into a 13x9 inch glass or ceramic baking dish.
Sprinkle the top of the pudding with cinnamon.
Cover the pudding with plastic wrap or a lid and refrigerate it for at least 3 hours, or until it is chilled and set.