When opening the USB device in response to the first match notification, the USB interface iterator (since 10.14) does not return a USB interface anymore.
However, if the USB device is already connected at the time calling IOServiceAddMatchingNotification(), and therefor it is iterated with its resulting iterator (without match notification) then the interfaces are found and from then on the USB interface iterator works.
Once the interface iterator has successfully returned a USB interface, it now also works as a reaction to USB match notification. (Therefore a reboot is necessary to reproduce the problem once the iterator found an USB interface).
Interestingly, it doesn't seem to be a simple timing problem, because a delay doesn't help, but a BP does...