Setting dtr and rts to 0 seem to produce consistent good results. As a nagative test, I tried with 3 other combinations and all had problem. I set rts and dtr using pio command line “pio device monitor --baud 115200 --dtr 0 --rts 0” and by modifying platform.ini and both worked!
@maxgerhardt suggested this earlier and it did not work. Not sure why. Thanks again to both of you.
Now I am on a mission to find out why dtr and rts affect this. Why dts and rts have to be lowered for monitor to work?