the ‘save_post’ event triggers when I want to start a new post

You can simplify your save handler by checking if the POST variable is set. If it isn’t, no need to handle the request:

function save_files( $post_id, $post ) {
    if( ! isset( $_POST['image_upload_nonce'] ) || ! current_user_can( 'edit_post', $post_id ) )
        return;

    // Good to go, handle everything.
}

For an explanation on why the save_post hook is firing, see my other answer.