dg1d: use separate CallbackTimings for separate callbacks
Our CallbackTimings ensure that only forward progress is made. When the same timing is shared by multiple callbacks, e.g. one for 0d and one for 1d output, then firing for 0d prevents firing for 1d.