Sketch Uploading Issue

Hello , I have an arduino Nano Clone which was used to make a rev limiter circuit for old traditional contact points ignition system.
Code Logic :
Rpm was calculated from the timing between each closing of contact points and when certain rpm is achieved the arduino activates an npn transistor which activates a normally closed relay to disconnect (+12V) from primary side of ignition coil .

AT THE MOMENT required rpm is achieved the arduino freezes and doesn't work unless disconnecting power from it. (the circuit works when bench-testing but not while car is running, also was using a different nano board before and was working successfully while engine is running but shorted it unfortunately)

NOW when i try to upload a new sketch (ex: Blink) the IDE compiles successfully and just says uploading but never ends BUT the old sketch is still running with no problem.
when i try to press the reset button on arduino while uploading it says uploading done but the old sketch is still running and car print serial monitor commands.

I maybe accidently shorted one of the processor pins to ground by mistake i don't know if this is the problem and a new bootloader burn can fix the issue or not.

Here is a full verbose output for an upload

and this is when pressing reset button while uploading:

AVR Part : ATmega328P
Chip Erase delay : 9000 us
PAGEL : PD7
BS2 : PC2
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :

                              Block Poll               Page                       Polled
       Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
       ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
       eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
       flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
       lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
       hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
       efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
       lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
       calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
       signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

     Programmer Type : Arduino
     Description     : Arduino
     Hardware Version: 3
     Firmware Version: 4.4
     Vtarget         : 0.3 V
     Varef           : 0.3 V
     Oscillator      : 28.800 kHz
     SCK period      : 3.3 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: reading input file "C:\Users\LENOVO\AppData\Local\Temp\arduino\sketches\0FC9E2A4AF203513EC3AD84D35F57B12/Blink.ino.hex"
avrdude: writing flash (924 bytes):

Writing | ################################################## | 100% 0.12s

avrdude: 924 bytes of flash written

avrdude done. Thank you.

I'd probably investigate how the circuit/board is protected from back EMF, current spikes, over voltage etc...

This is circuit i am using to know the rpm from distributor contact points (please ignore the fuel injector part as i didn't implement it yet)
if you have any other suggestions i can do to eliminate back emf and to protect the arduino i would be happy.