Controlling AVR reset via voltage divider
Using a resistor in this way will not work. The 10k resistor and 310 resistor form a potential divider which means that when PROG_RESET is floating, there will be \$V=\frac{3.3\times310}{10k+310}=0.1V\$ at the reset pin.
Instead you should use a level shifting circuit which either drives the RESET line high when the programmer is not connected, or has a high-impedance output.
If you want a simple modification to your existing circuit, you could replace your two low-value resistors with an N-channel MOSFET, using the following circuit:

The MOSFET could also be replaced by a diode with Anode to AVR_RESET, and Cathode to PROG_RESET. In this case, it should be a schottky type diode with a low forward voltage drop (maybe &lt; 0.5V) to ensure the AVR reliably detects a logic 0.