Arduino sleep mode 1 button only

I got it done, i'll sharing my source:

#include <avr/interrupt.h>
#include <avr/sleep.h>

void setup() {
  pinMode(13, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(2, INPUT_PULLUP);
  
  for(int i = 0; i<4; i++){
    digitalWrite(9, HIGH);
    delay(50);
    digitalWrite(9, LOW);
    delay(50);
  }

  digitalWrite(13, HIGH);

  Serial.begin(9600);
}

boolean in_sleep = false;
boolean on_off_pressed = false;

void sleep(){
  in_sleep = true;
  digitalWrite(13, LOW);

  //1\8 de 16Mhz
  CLKPR = 0x80;
  CLKPR = 0x06;

  for (byte i = 0; i <= A7; i++){
    if(i == 2)
      continue;

    pinMode (i, OUTPUT);
    digitalWrite (i, LOW);
  }
  
  // disable ADC
  ADCSRA = 0;

  set_sleep_mode(SLEEP_MODE_PWR_DOWN);
  sleep_enable();
  
  // turn off brown-out enable in software
  MCUCR = bit (BODS) | bit (BODSE);
  MCUCR = bit (BODS); 
  //sleep_cpu ();
  
  interrupts();
  attachInterrupt(0, wake, LOW);

  sleep_mode();
  sleep_disable(); 
  detachInterrupt(0);
}

void wake(){
  in_sleep = false;
  
  //1\8 de 16Mhz
  CLKPR = 0x80;
  CLKPR = 0x01;
  
  //Internal Reset
  asm volatile ("  jmp 0");

  /*digitalWrite(13, HIGH);
  delay(500);
  */
  
  //delay(5);
  noInterrupts();
  
}

void loop() {
  if (digitalRead(2)== LOW && in_sleep == false){
    Serial.println("Sleep!");
    delay(300);
    sleep();
  }
}

BTW, something is not right, my arduino out of sleeping consumes 30.4mA and on sleeping 24.1mA.
Might this be because it's a Chinese replica, or i have something wrong?
(I'm using arduino Pro mini v3)