Почему игнорируется условие if?
1. Если что-то не работает как задумано, первое что нужно сделать это открыть инструменты разработчика на вкладке console и посмотреть нет ли там никаких ошибок. Если есть то загуглить их и посмотреть где они возникают. Попытаться осознать и исправить. А ещё лучше научиться отладке собственного кода https://learn.javascript.ru/debugging-chrome
2. Перед тем как пользоваться тем или иным способом объявления переменных (var\let\const) стоит почитать про него и ознакомиться с нюансами.
https://medium.com/nuances-of-programming/%D0%B2-%...

А именно:
if (parseInt(number.innerHTML) == 0){
  let step = 3;
  } else {
  let step = parseInt(number.innerHTML) - 1;
  }
Переменной step не существует вне фигурных скобок, соответственно, ниже, где Вы пытаетесь засунуть step как innerHTML - возникает ошибка, что step не определена.
разберитесь с областью действия переменных

в каждой ветке условия у Вас своя переменная step