I don't know whether it's a bug, a feature, or me not understanding how to do things correctly.
I create a counter-out task with DAQmxCreateCOPulseChanTime, with an initial delay. Then I set DAQmxTaskControl(stimOutTaskHandle, DAQmx_Val_Task_Commit).
When I now start the task, I don't get the initial delay, but the rest of the pulse looks like desired. If I do not commit the task, the delay is as expected.