A common DigitalOutput pattern (also shown in the docs) is to trigger the output within a SelectMany, for example to update buffer and sample rate parameters dynamically in response to different inputs. For example:
Consider the workflow:

The first KeyDown triggers the SelectMany and the DigitalOutput. If the first KeyDown is pressed several times (before the FiniteSample task has completed), both KeyDowns will eventually stop producing notifications. I wonder if the task.WaitUntilDone() blocking call has something to do with this, or the nidaqmx interface is excepting silently.
Interestingly, if we use the Shader package KeyDowns instead this behavior is not observed, although notifications from the KeyDown that trigger the SelectMany are delayed until the DigitalOutput task has completed.