I can receive broadcast frames and frames directed to the device's own MAC address, and don't have the 128 byte limitation of the sniffer API. I have a public github repository: ernacktob/esp8266_wifi_raw that demonstrates a proof-of-concept.
https://github.com/cnlohr/esp8266rawpackets/
It actually looks almost the same as what you are doing :-p
Looks like I only beat you by ~5 days.