My protocol library:
There are some drawbacks to using escape bytes, namely that corruption can make a byte look like an escape when it should't, or make an escape into a normal byte, so you really gotta use a checksum(Serial comms are usually reliable so I just use a twos complement fletcher, because it's one of the smallest fastest hashes there is.)