Another approach would be to have Enginuity log to a csv file, and have your friend's digital dash software read from that file. You don't have to stop reading when you hit EOF - just keep checking for more data.
I just wrote a little toy program to try this out, and surprisingly TaskMan shows it using 0% CPU, even if I use synchronous reads. I just have to "Sleep(1)" when the read comes up empty (otherwise it's up at 97% CPU).
With this approach, your friend can use csv files as input data, and not bother with serial ports at all. At most he might want to write a test utility that reads one CSV file and writes to another with realistic pauses between lines.
All of this assumes that you're OK with using Enginuity to do the actual logging, and that Enginuity opens the csv file in a way that allows other processes to read from it. I haven't actually checked that, but if that's not the case it's probably just a one-line fix.