For those of you who are wondering what the solution was:
1) updating the post meta is hooked into the save_posts action, which runs every time anything is updated. In that function, there is a verify nonce function.
2) This action runs even if a post type is saved that does not have the post expiry enabled, and thus, no nonce field is output.
3) Since there is no nonce field, on update, no nonce is transmitted, and thus the verify nonce fails.
4) Because I set a wp_die() on failure, this stopped people from actually working. I am sorry about this, will not happen again. (for reference, the function should just return; )