The only time the program button should need to be manually pressed is when a program has crashed (in a way that makes it impossible to handle USB interrupts) or uses a configuration that has the USB serial port/emulation disabled. That isn't the case here.
As I said, you can test the sketch yourself (or any sketch with an empty loop() function) and see that it doesn't need the program button to trigger reprogramming.
As I said, you can test the sketch yourself (or any sketch with an empty loop() function) and see that it doesn't need the program button to trigger reprogramming.