MCUSR is status register and EXTRF is the external reset flag - a bit in MCUSR. I'm recommending to read ATmega328P data sheet if you want know more about it.
Why would you built the ISP programmer. Any cheap ISP programmer is good, like most common USBasp. You can also use another Arduino as ISP programmer.
There is a possibility to call the bootloader directly, a jump to the address of the bootloader. Not the same as reset but it should work.
Optiboot is good choice and it is smaller than bootloader usually used in chinese Nanos. It takes 512B in compare with 1kB for the old bootloader. Optiboot image is created for 115200 baud trnsfer speed, the old bootloader has it for 57600 baud, but you can compile it for your needs of course.