See my comment below.  You might want to use a queue on the accels.  Then use that to block and accumulate and then when there is enough data compute a sample.  That keeps all the work in the task context.