Add listener wrapper with timeouts