If you try to estimate the consumed memory offline (without looking at the module information online), then it is not enough to just add the blocks together.
In addition to the blocks there is memory set aside to the system settings and communication connections. Especially the communication connections can take up a surprising amount of memory.
Try to compare the size of the the blocks offline and what work mem is used online. You will notice a significant difference.