allow for a close reason to be propagated around the close/closing method

and populate this where relevant in framework generated closes (particularly for connect failures)