Mass email feature workflow in ACP can take significant amount of resources when using email queue. What happens:
If "Send immediately" checkbox is unchecked, everything is dumped to the /cache/queue.php cache file.
For every email package (depending on "Email package size" setting value) it dumps a chunk (in serialized form): addresses list, email headers, email subject, full email text (note that the text is the same for every user/chunk). So, you get as many chunks as: Number of users to send / Email package size.
Then the board cron reads the full queue.php file (never minding the size it could be), unserializes it, takes the chunk, sends it, serializes the rest of queue and dumps it back to the queue.php file.
This happens in a loop until the queue is empty.
This workflow is very suboptimal for more or less many registered users (imagine some board having f.e. 10 000 users and Email package size of 10-20, you get 500-1000 chunks; if a chunk is big, you can get problems with the board/server operation).
Suggestion is to redo the workflow in a way it wouldn't duplicate at least the same email text for every user/chunk in the queue.