almost finish up the synchronous task queue

this will be the canonical I2C implementation from now on.