I couldn't help myself. I added the loopback to the AS_1 VRF (which apparently populates the ID portion of the TLV, which is probably the buggy part of this code, it doesn't know who to default to the LDP interface). It appears that is all it takes, although you must then advertise the loopback into OSPF for the LDP adjacency to come up. I also hard to stop and start the routers, I couldn't figure out a way to clear the neighbors.
Another interesting thing that I saw is that the lower ip address always sourced/received from the 646 port.
Now I can sleep like a baby ;)
Rack1R1#sh mpls ldp neighbor
Peer LDP Ident:
2.2.2.2:0; Local LDP Ident
150.1.1.1:0
TCP connection: 2.2.2.2.646 - 150.1.1.1.11040
State: Oper; Msgs sent/rcvd: 15/15; Downstream
Up time: 00:03:04
LDP discovery sources:
Serial2/0.1, Src IP addr: 150.1.12.2
Addresses bound to peer LDP Ident:
2.2.2.2 150.1.12.2
Rack1R1#sh mpls ldp neighbor
Peer LDP Ident:
222.222.222.222:0; Local LDP Ident
150.1.1.1:0
TCP connection: 222.222.222.222.11006 - 150.1.1.1.646
State: Oper; Msgs sent/rcvd: 13/13; Downstream
Up time: 00:00:31
LDP discovery sources:
Serial2/0.1, Src IP addr: 150.1.12.2
Addresses bound to peer LDP Ident:
150.1.12.2 222.222.222.222
Rack1R2#sh mpls ldp neighbor vrf AS_1
Peer LDP Ident:
150.1.1.1:0; Local LDP Ident
2.2.2.2:0
TCP connection: 150.1.1.1.11040 - 2.2.2.2.646
State: Oper; Msgs sent/rcvd: 21/21; Downstream
Up time: 00:08:25
LDP discovery sources:
Serial2/0.1, Src IP addr: 150.1.12.1
Addresses bound to peer LDP Ident:
150.1.1.1 150.1.13.1 150.1.12.1
Rack1R2#sh mpls ldp neighbor vrf AS_1
Peer LDP Ident:
150.1.1.1:0; Local LDP Ident
222.222.222.222:0
TCP connection: 150.1.1.1.646 - 222.222.222.222.11006
State: Oper; Msgs sent/rcvd: 13/13; Downstream
Up time: 00:00:18
LDP discovery sources:
Serial2/0.1, Src IP addr: 150.1.12.1
Addresses bound to peer LDP Ident:
150.1.1.1 150.1.13.1 150.1.12.1