(2) The issue is that the GPIO state is not reset by the reset pin (although this is, essentially, a design error) but only by a power cycle. Holding the RESET pin down is necessary to keep the processor from running the program and immediately reprogramming the GPIOs. The trick (and it really is a bit tricky) is to hold down the reset button, and while you are holding the reset button down, power cycle the board by unplugging and re-plugging the USB. Then (keep holding that button down!) run the script to re-program the SPI flash. One the program says that it is erasing the flash, then it's safe to let go of the button.