The CDC descriptor was not advertising support the the line
coding and serial state messages. This was preventing Mac
from sending the SetControlLineState message to indicate
that a DTE (ie terminal program) was present and reading
from the serial port.
We support (and depend on) the DTE indication now so this
was making CDC not work on Mac.
Linux seems to provide the indication regardless of whether
it is advertised in the descriptor or not.