What happens at point 4 now?
You have to resynch...somehow.
If your data is binary I see no really valid method of resynching with the data stream using any combination of terminator values. This is one good thing (the only good thing IMO) of using ASCII-only data.
In my case the sequence number is just another check. I recently dropped it BTW but it's still on the cards.
The fundamental problem is resynching with the data stream. I do this (caveat, untested just designed) by waiting for an idle line of 16 bit times that indicates an inter-frame break. The timing is very important though and in fact I have a dedicated processor to handle the low level interface.
I assume that you are doing a multi-drop protocol otherwise you wouldn't be having these issues.
I have spent a lot of time designing such a protocol to be used as a robust "commercial grade" protocol and just recently dropped it for a point-to-point ring topology because of perceived (by me that is) reliability issues.
What's you application and how robust does it have to be?
Rob