It looks like you set your indexes to unusable. I believe that just means the index won't be used if you query the table.
However, during your loading, the index will be maintained with inserted and updated values, thus generating redo even when nologging is used.
"nologging" for index will only work when used with create index statement.
There may be other reasons but this is one of them.
Try the following and see if it generates less or no redos:
- Drop indexes
- Load table with
/*+APPEND*/
(will be faster too without indexexindexes on the table) - Create index with "nologging" option