If you want to avoid escaping, you need to declare the length of your fields, so it says for instance "now come 20 bytes of field value" and no termination symbol is necessary. This is nothing new, read about the pros and cons of null terminated strings or old and traditional standards such as ASN.1 if you want to learn more about that.
I don't like the name TSV (Tab seperated values), because it is just CSV, and the name should be agnostic about the used seperators. See for instance https://pandas.pydata.org/pandas-docs/stable/reference/api/p... for a versatile parsing library in a widespread data science library. It just calls all these data formats CSV.
One variant I have sometimes used is DLE to escape the next character if it is a control character that should be part of the data.
.mode ascii