The most common problem when trying to run two patterns in parallel is using 'delay' for timing. The 'Blink Without Delay' example shows a way of generating a lighting pattern using the millis() function rather than delay().
The first step is a rough specification of the two patterns. How often are the strobes? What levels do the dimming and fading light hit, in what order, and with what timing?
Another alternative is to set up an interrupt from one of the timers. you can then cause your strobes and fades to occur based on a counter that increments in the interrupt routine. You main loop will then not end up waiting for an event or number to be reached it simply test for it and moves on whilst the ISR does the timing for you.
Yes, I absolutely hate delay(). I wish the Arduino team would just take the "Blink" sketch out of the examples.
There is a thread here on having more than one event running using "Blink Without Delay", which uses the millis() or micros() timer to time events asynchronously.