Насколько безопасно сохранять модель в отдельном потоке?
Я бы начал с БД. Проанализировал план запроса, оптимизировал запрос. Выявить причину по которой БД долго выполняет запрос - первостепенно.
Вполне вероятно, что тут уже можно подумать над какими-то инструментами для работы с фоновыми задачами и отдавать что-то "долгоиграющее" туда.
Но, если по конкретно по делу, то вам нужно иметь ввиду, что каждый поток будет открыт со своим коннектом к БД, который потом нужно будет закрыть руками внутри блока после сохранения:Thread.new do
  model_instance.save
  ActiveRecord::Base.connection.close
end
Либо действия внутри потока совершать с использованием уже имеющегося соединения из пула:Thread.new do
  ActiveRecord::Base.connection_pool.with_connection do
    model_instance.save
  end
end