That’s because the $post_id on the back end will never == ‘new_post’. You also will not need to update or insert a post.
What you need is 2 function/filters
On the back end filter/function you only need to deal with the .zip file.
On the front end filter/function, insert the new post and then call the function that deals with the .zip file.
Either that or have to separate functions that do all the work and remove the check at the top and inserting the post from the backend function.