На самом деле вам не нужно приостанавливать ExecutorService. Вам нужно блокировать потоки, которые пытаются записать в список, а не приостанавливать пул потоков. Или однажды вы помещаете задачу, которая пишет в базу данных, в этот пул потоков, она приостанавливает пул потоков, включая самого себя, и весь процесс зависает.
Вы можете просто сделать 2 синхронизированных метода - один для записи в список и один для чтения из него, отправки в базу данных и очистки. Они нужны вам в любом случае, поскольку к списку обращаются из разных потоков.