If there was no completion date on the contract, nor did the contractor tell you what date he would finish, the work is to be completed in a reasonable time period. Reasonableness is determined on a case by case basis. You should send him a letter explaining what has happened and why you do not need his services any longer. If you have paid him for work not done, you should as for the remainder of the money back. If he does not pay the money back in a reasonable time, you can take the contractor to small claims court.
I would be happy to answer any other questions that you have about this - firstname.lastname@example.org or 919-832-4040