Maybe in your code:
void loop()
{
if(digitalRead(2) == HIGH)
for (pos = 0; pos <= 180; pos += 1)
{
myservo.write(pos);
delay(15);
}
for (pos = 180; pos >= 0; pos -= 1)
** {**
** myservo.write(pos); **
** delay(15); **
}
==> Maybe this part is being 'lagged' because since it's not inside the 'if' function, it would do that every loop. So if you pushed the button (pin 2), then it would just go back and forth 180 degrees. But if you don't give a signal to the button, then I assume it wouldn't have enough time to go to 180 degree quickly... So that 'might' be a problem
///////////////////////////////
if(digitalRead(4) == HIGH)
{
digitalWrite(12,HIGH);
}
if (digitalRead(7) == HIGH)
{
digitalWrite(8,HIGH);
}
else{
digitalWrite(12,LOW);
digitalWrite(8,LOW);
}
}