не остараливает, поскольку ваш обработчик уже работает над сообщением с командой, в котором будет текст из команды. В вашем примере можно попробовать на каждое сообщение в цикле регистрировать обработчик:
bot.register_next_step_handler(bot.send_message(chat_id, "123"), break_this)
и соответственно в функции
break_this
реализовать прерывание цикла, например через флаги. Можно создать базу пользователей с полем, отвечающим за остановку цикла.
from telebot import types
UserId = int # тайпхинт
class User:
def __init__(self, user_id: UserId):
self.user_id = user_id # неплохо бы property
self.is_spamming = False # везде
users: dict[UserId, User] = {}
def stop_spam(message: types.Message):
users[message.from_user.id].is_spamming = False
@bot.message_handler(<>)
def spam(message: types.Message):
user = users[message.from_user.id]
user.is_spamming = True
while user.is_spamming:
bot.register_next_step_handler(bot.send_message(<>), stop_spam) # как-то так