I recommend to simply profile your code. First extract a very short
snippet of code that reproduces the problem. The lesser lines the
better. Then run it with ruby-prof. You will clearly see where
ActiveRecord::Base#save spends so much time.

Greetings,
Wojtek