You don't understand the law. If there is a contract, then the employment isn't at will. Both parties have rights under the contract. Also, at will employees have protection against being fired for reasons of race, creed, sex, and religion. I'm not saying how any of that might apply in this scenario, I'm just saying that your simplisitic impression of employer/employee law is wrong.
Correct. However, Duke earlier made the point about laches. not a bad smokescreen except that most contracts are going to contain boilerplate language stating that any previous failure on the part of an employer when it comes to exercising any rights under the contract does not mean those rights have been waived. Standard contract language just about always included in a contract.
Bottom line is that the personal conduct of a teacher is germaine to the mission of Catholic schools, which is to educate students in an environment that is consistent with the religious teachings of the Catholic Church.
I am generally not for firing people for being homosexuals, but in this situation the church did the proper thing. You simply cannot have the tenets of a religion being taught by people who live in ways contrary to those teachings.
Good luck on your job search.