Как переписать скрипт, чтобы AJAX возвращал ответ на запрос в правильном порядке?
Собственно, непонятно зачем делать 4 отдельных запроса.
В идеале - делайте один запрос на сервер (в текущем примере - на /cart/deleteOneAjax/<id>). А сервер сам должен обработать все необходимые изменения и вернуть новый вариант корзины.
Используй await чтобы выполнять запросы последовательно:
$('.minusCart').click(async function () {
	
	try {
		
		var btn = $(this);
		
		// Блокируем повторные клики:
		btn.css('pointer-events', 'none');
		
		var id = btn.attr('data-id');
		
		var data = await $.post('/cart/deleteOneAjax/' + id);
		
		if (!data) {
			
			location.reload();
			
		}
		
		else {
			
			$('#id-count' + id).val(data);
			
			data = await $.post('/cart/countAjax/' + id);
			$('#cart-count').html(data);
			
			data = await $.post('/cart/productPriceAjax/' + id);
			$('#product-price-cart' + id).html(data);
			
			data = await $.post('/cart/totalPriceAjax/' + id);
			$('.total-price-cart').html(data);
			
		}
		
	}
	
	catch(err) {
		
		console.error('Ошибка, не удалось заминусить товар!', err);
		
		alert('Ошибка, не удалось заминусить товар! Детали см. в консоли.');
		
	}
	
	// Разблокируем кнопку:
	btn.css('pointer-events', '');
	
});