It was intentional so that we can better reason about the state of the memory module in taskloop_loop().  Without this, you would have to check if the module was still writing before removing power to it and going to sleep.  Also, the module locks itself while writing so you can't read from it either, meaning that all read functions would have to have a mem_wait_while_writing check in front of them too.  

It seemed that the clearer thing to do was simply have the write be synchronous and finish by the time the function returns.