Why UA954 was diverted to Houston IAH on 25th Feb?
They told ATC they had an unknown odor in the cockpit. When ATC asked for more detail they said they had narrowed it down to the cockpit heating element. They specifically said they were not declaring an emergency.
It just happened to have occurred while they were within range of the LiveATC receiver so the transaction is on the recording (normally you can only hear ATC on the en route feeds). The recording is here. After ATC tries to raise them several times they check in at about 17:22 on the recording and tell ATC about the odor and need to divert. About 5 min later, I presume after conferring with the company, they tell ATC they are not declaring emergency but they're diverting to IAH. When asked for further details the say it's the cockpit heating element. After a few more exchanges with ATC they fly out of range of the LiveATC receiver.
Here's my transcript.

Times are per the recording (MM:SS). The recording starts at 0630Z so add that to the times listed for UTC
16:15 [ATC] United 954 change to my frequency if you're not there, 127.75
16:28 [ATC] United 954 Salt Lake
16:38 [ATC] United 954 Salt Lake Center
17:10 [ATC] United 954 Salt Lake Center
17:23 [UA954] Salt Lake united 954 checking in 350
17:27 [ATC] United 954 Salt Lake Center, roger. Welcome
17:30 [UA954] Yeah, it looks like we've got some unknown odor in the airplane. Were gonna - were either gonna go to Houston or San Fran. I'll get right back with you.
17:40 [ATC] United 954 thank you
21:54 [UA954] Salt Lake 954
22:13 [UA954] Salt Lake 954
22:16 [ATC] 954 go ahead
22:20 [UA954] Yeah, we are not, I repeat, not declaring emergency. We just need to turn to Houston for an unknown odor in the cockpit.
22:27 [ATC] United 954 roger, clear to Houston airport via direct. Maintain FL350
22:36 [UA954] Ok, 350 direct to houston, thank you. United 954
22:52 [ATC] United 954 I just want to confirm that's India Alfa Hotel. Is that what you're showing?
22:57 [UA954] India Alfa Hotel, affirmative
23:00 [ATC] 954 roger, thanks
23:07 [ATC] United 954 they're gonna want to know maybe a little bit more details. Is there something else maybe you can tell me about the odor so I can pass that along?
23:17 [UA954] Stand by
23:23 [UA954] Yeah, we've narrowed it down to the cockpit heating element is, we believe, the source of the smell. But that's the best we can deduce at this point.
23:34 [ATC] United 954 roger, thank you.
There are a few further routing exchanges before 954 flies out of range.