How is it possible, with 2 "20 AWG" cables each capable of 2 amps, for one to give 0.4A to my phone and the other 0.7-0.9A?
More advanced devices determine what current they can take from a charger by looking at what is happening on the signal leads of the usb charger. For details see https://www.maximintegrated.com/en/app-notes/index.mvp/id/5801 
In this document there is detailed description of the charger types and how they are identified to the device being charged here is an extract from the document that may explain your problem.

Standard Downstream Port (SDP) This port features 15kΩ pulldown resistors on both the D+ and D- lines. The current limits are those discussed above: 2.5mA when suspended, 100mA when connected, and 500mA when connected and configured for higher power.

Dedicated Charging Port (DCP) This port does not support any data transfer, but is capable of supplying charge currents beyond 1.5A. It features a short between the D+ and D- lines. This type of port allows for wall chargers and car chargers with high-charge capability without the need for enumeration.

Downstream Port (CDP) This port allows for both high-current charging and data transfer fully compliant with USB 2.0. It features the 15kΩ pulldown resistors necessary for the D+ and D- communication, and also has internal circuitry that is switched in during the charger detection phase. This internal circuitry allows the portable device to distinguish a CDP from other port types. 

I suspect that the signal leads (D+,D-) are missing or mis configured on the 0.4A lead and that your phone assumes it is a standard port only capable of supplying 500ma.