Do I need a dovecot.socket?

Dovecot probably already listens in the sockets, this is a common configuration for dovecot. Try this command to verify.

ss -ntpl | grep -e :143 -e :993

If dovecot already listens on these ports, then systemd can't also listen on these ports. If you have dovecot listening, you don't need dovecot.socket.