I don’t think you’re actually getting the post ID sent by the javascript.
function toggle_task_status () {
$post_id = $_POST['data']['post_id'];
$update = update_post_meta($post_id , 'task_status', 'open');
if($update){
wp_send_json('success');
} else {
wp_send_json('fail');
}
wp_die();
}
and then in your javascript
success: function (response) {
console.log(response); // should be either 'success' or 'fail'
}