SPI clock frequency disaster

Presumably, the target's clock divisor is set based on the fuse settings when RESET is released. Try pulsing RESET...

void start_pmode() {
spi_init();
// following delays may not work on all targets...
pinMode(RESET, OUTPUT);
digitalWrite(RESET, HIGH);
pinMode(SCK, OUTPUT);
digitalWrite(SCK, LOW);
delay(50);
digitalWrite(RESET, LOW);

// May need a small delay here
digitalWrite(RESET, HIGH);
// May need a small delay here or may need to use direct I/O to speed this up
digitalWrite(RESET, LOW);

delay(50);
pinMode(MISO, INPUT);
pinMode(MOSI, OUTPUT);
spi_transaction(0xAC, 0x53, 0x00, 0x00);
pmode = 1;
}