Determining when a serial connection is opened
You are correct that DTR can be overridden by OS, but in practice, it is actually a pretty good indicator. And in Linux, it is pretty hard to disable [0].

If you have USB support in your chip, you can implement CDC class serial device natively. This usually does not require any drivers, and gives you full information, including when the port is open. Once very nice property in using on-chip CDC implementation (as opposed to external FTDI chip), is that you can ignore baudrate completely -- so user will be able to talk to your device no matter which speed they choose in putty settings.

[0] https://unix.stackexchange.com/questions/446088/how-to-prevent-dtr-on-open-for-cdc-acm