Sorry for the delayed reply. Please post the last few lines of output before "catch_up_rpc: abort" or "Exception: RPC load failed." Have you run Bitcoin with -reindex since adding txindex to bitcoin.conf?
RPC is slower for the initial load, I think over twice as slow as blockfiles. Once caught up, it usually inserts blocks faster than the blockfile method, since RPC has already loaded most transactions by the time the block comes (assuming that you arrange for it to catch up frequently).
Abe normally does not "read the blockfiles over and over again": it stores the current position in the database.