Включение и выключение функцыи JS?
Лучше вместо setInterval() использовать requestAnimationFrame()
Там принцип: отрисовали кадр – запросили отрисовку следующего. Пошаговая передача эстафеты.

Завести переменную-флаг, которая будет true или false. Разрешать или запрещать анимацию.

На каждом шаге смотреть на эту переменную: и делать следующий requestAnimationFrame() только если переменная true.

Кнопка будет менять состояние этой переменной. И, при переключении из false в true, запускать отрисовку.

Ещё оптимизация: не нужно в каждом кадре искать элементы, достаточно это сделать один раз.

snippet
При условии, что у вас в принципе правильно работает функция moveByCycle, делаем следующее:

Пишем две функции

let t; // Дескриптор счетчика setInterval

function startCycle() {
 t = setInterval(moveByCircle, 0);
}

function stopCycle() {
  clearInterval(t);
}

Функцию ByCycle выкидываем нахер, ибо непонятно, что она делает.

Кнопку переписываем

<button onclick="toggleCycle">ВКЛ/ВЫКЛ<button>

И пишем последнюю функцию

function toggleCycle() {
  if (t) {
    stopCycle();
  } else {
    startCycle();
  }
}