Cookie headers in HttpResponse are deficient because you are using the public overrode ToString() method of System.Net.Cookie and (at least in the mono implementation) that does not append some important parameters of the cookie to the output string, such as the expire date, so it wont be present in the set-cookie header.
I think in the mono implementation of the HttpListener they are using the internal ToServerString() method for generating the header value from the cookie, not the trivial public ToString() method. See here.
Cookie headers in HttpResponse are deficient because you are using the public overrode ToString() method of System.Net.Cookie and (at least in the mono implementation) that does not append some important parameters of the cookie to the output string, such as the expire date, so it wont be present in the set-cookie header. I think in the mono implementation of the HttpListener they are using the internal ToServerString() method for generating the header value from the cookie, not the trivial public ToString() method. See here.