Now that we have the whole system view, I would kind of look at it from two different times. The most critical part to your system seems to be the web sessions, that's where I would start.

First, I would want to get a trace of a session during "Normal" time to see what my waits are. You may find that you are still waiting on "log file sync", just not as much. Since you have multiple connections, you might have to trace for an hour or so.

I would then do the same trace while I was doing a CTAS to see where my application thinks it is spending most of it's time.

I would then compare the two traces and see where the major differences are.

You may also want to monitor your disk I/O using iostat. If your log disks are really busy striping and raw disks may be in order.

When I see the "log file sync" event as the top wait event, I know it means my developers are over committing. However, in your case, you really have two different types of sessions, OLTP and long running transactions. When a "log file sync" happens, LGWR is working really hard. The condition may be exacerbated by your big redo log buffer.