The statement is true. If G has finite order and a subgroup of index two, G must have even order by Lagrange's theorem. Then, you can easily prove there must exist an element which is its own inverse. In fact, this is a standard exercise in any text.
Regarding your proof: Is multiplication of a left coset by a right coset well defined? And why do you end up with H on the right side? Doing this assumes xx=e.