No, you're not doing anything wrong. Those simple MOSFET level shifters work by having both sides pulled up by resistors to their respective power supplies. When one side gets pulled low by a digital signal that LOW is mirrored to the other side of the MOSFET.
If you connect your TX0 pin to GND you will see the TX1 pin go to 0V.
What about the amperage? (I guess that the max amperage of the USB power supply is divided between the board and sensors/actuators connected). How does it compare with the VCC output of, let say, an Arduino UNO?
The 5V pin is connected directly to the 5V of the USB. Whatever your USB port can provide the 5V can provide, minus the current used by the ESP8266....
The reference voltage for analogRead should be from the regulated 5V line, not from the unregulated input to the Arduino.
The real problem is that the voltage out of the battery will drop with current load. You're supposed to measure either the unloaded battery, or under a known, controlled load.
You ask "Should I use a step up module to 5V?" The answer is ...
Yes, you should use a boost converter to convert the 3.7V from your battery to the 5V that the Arduino requires.
As I understand it, measuring voltage to determine charge level does not work well with lithium chemistry batteries since they hold a nearly constant voltage until they are almost completely depleted. Generally lithium batteries include a chip ...
You can read the Arduino's supply voltage see here How to measure the supply voltage of Arduino without using an analog pin Alternatively use the internal 1.1V reference and a suitable voltage divider to read the lipo's voltage