Bit rate of uart communication
2400 baud is 240 characters (octets)  per second at 10 bits per frame (which is the standard "8N1" ).  Sleeping for 1 millisecond isn't going to affect spacing much, certainly not in a predictable way, because each character takes 4ms to send.

It could be that the python sleep can't do sleeps as short as 1ms, 

still, if you want to monitor the data you need an oscilloscope (or connect the data line through a resistor to a sound-card input an make a recording and view it in a sound file editor - the voltage will probably fluctuate a bit but you should see the edges of each bit clearly.)

Could there be something keeping your micro-controller busy such that it can't handle 240 characters per second?