I noticed the RPF was failing back to R1 from R3 point of view.
So I added the following on R2:
ip mroute 150.3.1.1 255.255.255.255 Tunnel0
SPRack3R2#sh ip rpf 150.3.1.1
RPF information for ? (150.3.1.1)
RPF interface: Tunnel0
RPF neighbor: ? (150.3.1.1)
RPF route/mask: 150.3.1.1/32
RPF type: static
RPF recursion count: 0
Doing distance-preferred lookups across tables
SPRack3R2#
SPRack3R3#sh ip rpf 150.3.1.1
RPF information for ? (150.3.1.1)
RPF interface: Ethernet0/0
RPF neighbor: ? (150.3.23.2)
RPF route/mask: 150.3.1.1/32
RPF type: unicast (isis)
RPF recursion count: 0
Doing distance-preferred lookups across tables
SPRack3R3
That seemed to address the root cause.