В песочнице криво у меня выглядит (1280x800). Ручками выравнять можно если все размеры известны и фиксированные, а это не так. С flex вроде хороший вариант.
Вроде по-разному выглядят только размеры самих блоков li. Может стоит попробовать вместо сочетания text-align: center и паддингов просто задать самим блокам железные, но процентные, размеры? То есть, если у ul дана ширина в 100%, то для каждого li тоже прописать железную ширину, ну а паддинги, возможно, вообще убрать.
Вот в последнем варианте по ссылке так и сделал. Там паддинги только вертикальные, а они не влияют на ширину. Буду переносить на макет, посмотрю как это будет выглядеть в суровой реальности.