You've echoed my line of thoughts and experimentation on this topic, Roger and Ray.
Using only ESP8266 (with sensors) would've been an ideal solution. Apart from single ADC input and 1V range, the problem lies in the sampling rate of ESP8266 ADC. The stated official sample rate is 200sps. Some have reported achieving 2.5k sps but there are risks of WDT resets at such high sample rates. To accurately measure power, it's recommended to measure 20th harmonic which corresponds to 2000sps. A minimum of measuring up to 6th harmonic, i.e., 1200sps is needed.
Realising this, I ordered an external ADC for use with ESP8266, but a common ADC such as ADS1115 has 860sps, way inadequate for this application. Using a more expensive ADC doesn't make sense because ATMEGA328 or STM32 work out as a cheaper ADC!
Currently, my setup is similar to what your described: a BPB connected to ESP8266 over Serial, sending MQTT data.
My next attempt is towards using a dedicated energy measurement chip (I got an ancient CS5460A for cheap on Ali), interfaced to ESP8266.
I know that the main issue is that the ESP8266 only had one ADC and its reads the 0 to 1V range.
People have speculated that you could not get good results reading both voltage and current using the same ADC using an external MUX, but as the ESP8266 is significantly faster than the AVR Arduino (on which the original EMonTX is roughly based), I think this is just speculation and no one has done any serious comparisons between AVR and ESP8266
External ADC on the ESP8266 however may be an interesting option depending on the functionality of the external ADC.
i.e if the external DAC can be triggered to read the voltage and current inputs simultaneously, or to possibly for the ADC to be doing conversion on one channel while the data is read out from the other channel etc
This may put an ESP8266 solution on par with an STM32 solution.
However it would take a lot of research.