The low level APIs do not require any knowledge of the OS scheduling. The code is not complex in the way you think it is - there is little algorithmic behaviour in a CD Burning task.
if buffer not full:
wait (time for 5 writes);
write to 5 * read_size to buffer;
Sure, you could do it more complex, but then you create fragile code at a spot when a simppler solution would work fine.