Только небольшое уточнение: я думаю, что ранее я выполнял Category.where(id: 21).update(name: "General") для категории, из которой я переместил темы или что-то в этом роде, потому что сейчас мне пришлось использовать эту команду несколько раз для различных категорий, и оказывается, что время выполнения команды пропорционально количеству постов в целевой категории.
Так что, по сути, это та же проблема, что и при обновлении категории через интерфейс, за исключением того, что в командной строке не происходит тайм-аута.
Для категории с более чем 30 000 тем это заняло, возможно, более минуты, для категории с более чем 15 000 тем — более 30 секунд, а для категорий с небольшим количеством тем всё прошло быстро.