Столько замечаний, но среди них не заметил основного ответа (как я понял из намека от Собеседующего)
"одновременные запросы":
Если 2 и более пользователей сделают запрос одновременно, то голос может засчитаться за 1.
Необходимо что-то типа:
while ($voteService->isLocked()) {
// просто ждем когда откроется
}