What is Arduino development environment doing???

Well that is part of it. If I use the resistor trick, it doesn't reset but the communication still won't work. If I send the code first, then there is no reset and everything works fine even without the resistor. Everything seems to point to the Arduino environment setting up something when it sends code that I'm not doing.