@Jasmin - Thank you for your suggestion. the problem is with trying to reverse engineer someone else's code based on how it appears to function. i.e. Sending 2 pixels of color to the end of the strip, and as soon as it reaches the end it starts over again with a very very short cycle to the beginning (almost instantly). This is true for 30leds to 180 leds. 150 led difference on a slow line send would have a very long wait before recycling the lights again.
That isn't how it works. When you send data to the line of WS2812s (or TM1803s) you are sending a complete data packet with a space, then an "EOF" signal. The chips don't reset the LEDs to a new color until they see the "EOF" signal. It's not like a chip holds a color and then passes it to the next one on the next refresh. You have to refresh ALL the LEDs EVERY TIME.
So, here's how it works - lets say you have 10 WS2812s on a line...
You can send 10 RGB colors down that line - the WS2812s will eat each color in sequence, color0 will go to chip0, color1 goes to chip1, etc... then you send the EOF signal, and at that point, is when the WS2812s will light up with the colors you just sent.
You can send 20 colors down the line - 10 WS2812s will eat the first 10 colors, and the last 10 colors will be sent "to nowhere" because there's nobody connected to the last chip. It will begin passing data after 10 colors arrive, but that data won't go anywhere.
You can send 5 colors down the line - the first 5 WS2812s will light up, and the last 5 will NOT - they will never see anything.
So, in the case you're describing, where you have 1 meter of lights and 5 meters of data, it's just ignoring 4 meters worth of data, and going slower than it needs to. That is just how the WS2812 works, and there isn't any way to check how many are connected. Look at the data sheet... it explains the 50us "frame sync" and everything.
http://www.adafruit.com/datasheets/WS2812.pdfAnd yes, it does have a "data out" pin - but that pin doesn't do anything but pass the data through, after the chip receives 24 bits. Each chip on the line does that - it eats 24 bits and passes everything else along the line, waiting for the EOF signal.