That is really terrible. I am glad you know now. {{{{{GEL}}}}}
I wish nops were available to offer you some advice, but IMO I think you need to either take Ian someplace so you can think and chill out for a few days, or tell H to not come home. This is a major boundary breach. There is no logicalling, or discussion that will make it better. He has choices to make and it is vital that you dont become
a) destructive b)a doormat again.
I really think a timeout with him making the next approach is vital. NO words that he can say right now will be adequate. YOU have been making terriffic attempts to meet his needs. Doing one Iota more at this time would be enabling. I feel your turmoil.