Receiving different strings of data

can I make another function that handles this new stream by itself?

No. One serial port == one serial event. The serial port has no idea what the bits coming down that port might mean.

Whats the best way of getting processing recognising the new datastream?

The "best" way is to stop thinking of it as a new data stream. The stream of data, no matter how intermittent, continues. The difference is what the data in that stream means to the receiving application.

You have each packet being sent use a different end of packet marker. Using the end of packet markers is good. Now, add a start of packet marker, too. Use a different start of packet marker for the two different kinds of packets, and react accordingly.

Personally, I like symmetric markers, like < and > or [ and ] or { and }, rather than asymmetric markers like nothing and ] or nothing and @, but, the choice of markers is up to you.