I wonder about this part:
//Setup external INT1 (pin3) interrupt
EICRA = (1<<ISC11)|(1<<ISC01)|(1<<ISC10)|(1<<ISC00); //Interrupt on rising edge
EIMSK = (1<<INT0)|(1<<INT1); //Enable INT interrupts
//need pull downs if active high, active low can enable internal pulllups
digitalWrite(3, LOW);
digitalWrite(2, LOW);
There is nothing like an internal pull down. So unless you have connected external pull downs this will cause the pins to float. Since these pins can trigger interrupts there is some chance that this is causing erratic wake ups depending on air humidity, the mood of the controller and the current phase of the moon.