And yes, to your point, the sunrise, sunset numbers are predicated on the size of the Sun's disc, so they're not precisely equal, as there is "sunlight" for slightly longer because of that size, and when the disc breaks the horizon going up/down.
So, even though the inclination of the Earth's axis on the equinox is halfway through the annual change, and point neither towards the Sun, nor away from it, and the Sun's declination is halfway through its rise (or descent), there is sunlight for a few minutes more.
If we measured "sunrise" as the moment that the disc was halfway visible, and "sunset" as the moment that the disc was halfway visible, the times would be precisely equal on the equinox.
Now, 24 hour day, with 360 degrees of travel for astroical objects means that they move at roughly 15 degrees per hour. One degree every four minutes. Your fist, held at arm's length is about ten degrees..so, things in the sky will move about the distance of your fist every 40 minutes...anyway...
The Sun has an apparent size of about half a degree. So, the disc is visible about 1/4 degree before the center, or about a minute early. And it will set about 1/4 degree after the center, or about a minute late.
Every day, every time, there are some more subtle effects of geometry, but close enough, because of how we define sunrise and sunset. But the above math presumes that the sun rises at a 90 degree angle.
Now, in Saint Louis, at 40N, will have the Sun transiting the sky at an angle of about 45 degrees... I.e. the sunrise is happening at an angle of 45 degrees to the horizon.
That means that the disc is visible at 1/4 of a degree early, but on a path that makes that angular distance visible about a minute and a half early. Think of a 45 degree right triangle. Sitting right on the horizon. The sun is sliding up the hypotenuse. So, while it's going across the hypotenuse at 15 degrees per hour, as above, when looking at the vertical axis, it's moving up the vertical at about 10 degrees per hour (Sin 45 ~ 0.7). and that 1/4 degree early just became 1 1/2 minutes.
And there is all of the variation you're seeing.