mongoose send function spools data in a heap buffer.
Then the IO task drains it to the network.
Thus, if the network is not fast enough (or is down), the data gets spooled in a heap.
You can examine the size of the output buffer by looking at:
struct mg_connection *c = mgos_mqtt_get_global_conn();
c->send_mbuf; // output dynamic buffer, "size" is the allocated size.
c->recv_mbuf; // input dynamic buffer