Indeed, lag is caused by more then internet connection. I had an issue on my personal dedicated a week back orso. With a full grid (20 players), and the second dedicated filled with 10 players, I had a max upstream of about 0,7 MB per second. My internet connection (upstream) was at that time around 4MB per second, so now issues with connection. However, I got a lot of response in chat that there was lag, so I logged in myself to see what was up. Indeed, there was a lot of lag.
So, i told everybody on the server that I was going to restart it. Waited for the races to finish, and then reset the computer. After the reset, I started up the dedi's again, and all lag was gone.
In this example, all factors where the same. Same nr of cars, same track, standard Race07 track, so no or little risk in programmers mistakes, same internet speed. Pings where the same before the restart and after. So, there are more reasons for lag to occur.
Genereally speaking, a race with 20 players require about 0,5 MB per second to function correctly (actual upload including a Teamview remote session). During starts, I have seen a peak of 0,6 - 0,7 MB per second, but that depends on how close everybody stays during the first corners, and how well they drive. If there are a lot of crashes (my dedi's are no passwords, so all kind of players race there), the usage goes up a bit. When all goes "normal", it stays at 0,5. I noticed that the longer a dedi is up (in one session, multiple tracks), the bigger the risk becomes on lag. Looks a bit like there is a memory leak in the dedi server software, but I am not sure about it. I just reset the dedi's every so many days.