The current implementation of libevent kidnaps the event_base and the thread by running any further requests inside a while loop in server_port_read which blocks on the socket.
This basically breaks the asynchronous functionality which should be provided on single threaded applications and makes usage of an event_base unnecessary.
This was a clear case of PEBKAC as the guide I followed for this didn't make the UDP socket nonblocking. Doing the socket so whit evutil_make_socket_nonblocking fixed the problem.
Sorry for the noise.