In a large, heavy-bottomed saucepan, combine the rice, milk, sugar, and salt. Bring the mixture to a gentle simmer over medium heat, stirring occasionally to prevent the rice from sticking to the bottom.
Reduce heat to medium-low and cook uncovered, stirring frequently (about every 2-3 minutes) to prevent scorching. Continue this process for approximately 20-25 minutes, or until the rice is tender and the mixture has thickened considerably.
Remove the pan from heat and slowly add about 1/2 cup of the hot rice mixture to the beaten eggs, whisking constantly. This tempers the eggs, preventing them from scrambling when added back to the pot.
Gradually whisk the egg mixture back into the saucepan, creating an incredibly silky texture.
Return the pan to low heat and cook for an additional 2-3 minutes, stirring constantly. The pudding will thicken further as it heats through and the eggs cook. You'll know it's ready when it coats the back of a wooden spoon and a finger drawn through leaves a clear path.
Remove from heat and stir in the butter, vanilla extract, cinnamon, and raisins (if using). The residual warmth will melt the butter and bloom the aromatics, infusing the entire pudding with those classic flavors.
Serve warm or allow to cool and refrigerate. If desired, sprinkle with additional cinnamon before serving.