This was because the poll callback was checking for the presence of an active layer. If you just create an empty datablock and try to paste, nothing would happen. However, this check was kindof redundant anyway, as the operator would add a layer for you if it didn't find one.