Personally, I have found more failing hookswitches on 7941 phones than I am comfortable with. The symptom is a fully functioning phone if you use the speaker phone, but the inability to go off hook on, or to switch to the handset.
The official Cisco document entitled "Best Practices for Cleaning and Troubleshooting Cisco IP Phone Hookswitch" indicates the hookswitch is self cleaning, and the contacts use a "wipe action" to self clean the contacts. The suggestion is to flash the hookswitch rapidly "a dozen times or so to clean the contacts".
It appears that a.) they likely have a problem with their hookswitch design, given they have a special document to assist in troubleshooting them, and b.) either their documentation is incorrect, or they have re-engineered the hookswitches.
Here's the hookswitch I found inside my 7941:

I don't see anything self cleaning or wiping about it.
What it is is one of those collapsing rubber nipples that short a contact on a circuit board below it when pressed. Yuck. When the handset is on hook, the nipple is not pressed, so I can't imagine it wearing out. It is at rest most of the time. I also can't see it being affected by the environment (dirt, humidity, etc.) since the rubber nipple seals the area where the contact is made.
The single wire loop in the picture is actually the spring that actuates the hookswitch. Yuck.
PLEASE NOTE: I am not an employee of Cisco, nor am I authorized by anyone to repair Cisco phones. Read at your own risk!
You CAN disassemble a 7941 fairly easily if fixing it yourself is your only option. Please check with your telecom support staff or Cisco partner before to examine other options first.
1. Unplug all the cables from the phone (Ethernet, headset, handset, power, etc.).
2. Remove the footstand from the phone.
a. Press the large button on the side of the phone to recline it all the way.
b. Flip the phone to view it from the back.
c. Use a screwdriver or like to push two "sliders" to the center of the phone. They are located in a groove at the bottom of the footstand, just above the "AUX" port and headset port. These can be quite difficult to move, but when you do, the footstand should fall right off.
3. Remove four phillips head screws from the back of the phone. Two are recessed and previously covered by the footstand. The other two are under the rubber feet at the bottom of the phone. If you take care when peeling off the rubber feet, they can be reattached with the adhesive that remains on them.
4. At the bottom of the phone, separate the front and rear portions of the phone by about a half inch or so. You do not have to separate them more than is comfortable. DO NOT try to break the phone wide open, like a clam.
5. While separated, pull the back of the phone "down" and the front of the phone "up", as if you are separating an Oreo cookie. The idea is to disengage plastic hooks holding the front and back together. If you open the phone like a clam, they will break. You will need to slide the front and back pieces in separate directions about a half inch. If you do it correctly, the front and back will now separate easily.
From there I would suggest:
1. Disengaged one end of the wire spring and straighten it out slightly. When reinstalled, this will create extra pressure on the hookswitch when off hook, creating extra pressure on the rubber nipple thing, and potentially making contact with the circuit board that wasn't being made before.
2. Remove and fiddle around with the rubber nipple. There are 4 rubber tentacles that poke through the circuit board, holding the rubber nipple on. Since it's difficult to get them back through the board, I suspect that they may not have been installed with much care originally. If the nipple wasn't tight against the board, it wouldn't make contact with the circuit board when the phone was off hook.
Steps one and two above ultimately provided me with a once again working hookswitch.