Someone has to learn how to "estimate." An estimate is an approximation, usually in the ballpark. When they realized @12 hours, [actually long before that], that they clearly screwed up the estimate they should have informed you. Someone should be making good on the screw up, like cutting the labor rate for what was clearly their mistake in not knowing how to estimate a job. In a situation like that an honest person would have said I have no idea how long this will take, so the price is going to be based on time and materials. Even then a good tech should have some inclination as to how long it would take.
I've done work over the years where I wasn't sure how long it would take. I bracketed the price, either they hired me or they didn't, but at least they knew. Those who hired me never paid more than the highest price in the range [usually less], and quite frankly I never ran into more time than I ball parked, unless they added work.