Hi,
You are right, the PLL will need sometime to lock as any PLL(this includes locking to ref clock then recovering data clock, say few microsec). The stream then has to be locked to(depends on how you lock to it, your state machine). You can arrange to monitor these two lock cases.
Equally, you are right, with an all-zero stream you are likely to run into trouble. Why not change the stream to any other fixed but alternating pattern. This also helps keeping locked to stream when idle.
You may wonder how to read valid data then. In my system I allocated many extra bytes at beginning of each packet. One byte was used to indicate the start of first valid byte and another byte to indicate the number of bytes to follow(you don't need this if it is fixed size).
You can add any information in the link as header to packets as long as your link speed is fast enough which I believe it can be e.g. channel number, any user parameters...
By the way, we used this link to pass our channels as well as remotely download all firmware and software to a flash. This is very attractive feature when you can update a buggy program through internet.
Hope this helps.
Kaz