Think about reorganiing your code so that loop() looks like this
void loop() {
readButton();
doColorWipes();
cyclotron();
}
Don't use delay() anywhere - use the technique from the Blink Without Delay example sketch
Organise all your functions ( the -wipes and the cyclotron) so they only execute one iteration of their loop every time they are called.
The demo in the first post of this Thread might give you the idea.
...R