This, exactly, and well said.
Because there is no agreement on the right. A clear majority of Americans want the current immigration laws enforced, but the GOP leadership wants to provide cheaper labor for business (by increasing its labor supply) and also wants to woo the Hispanic vote with amnesty. For most GOP Congresscritters, voting for amnesty means early retirement, but voting against amnesty means fewer campaign dollars and possibly fewer Hispanic votes. (Assuming you buy the notion that Hispanics whose main concern is importing as many Hispanic illegals as possible would ever vote Republican.)
Same reasons. A clear majority of Americans want the current immigration laws enforced, but the Democrat leadership wants more poor, illiterate Hispanics voting and doing their menial tasks cheaply. For many Democrat Congresscritters, voting for amnesty means early retirement, but voting against amnesty means fewer Hispanic votes both now (Hispanic voters whose main concern is importing as many Hispanic illegals as possible probably won't ever vote Republican, but they can just not vote) and in the future. Thus, voting to implement immigration "reform" as Obama wants it is a losing proposition for Congresscritters of both stripes even if it's a net boon to the Democrats. This is why the issue was never raised when the Dems had an absolutely ability to pass anything they wished.
Of course, that is no justification for Obama's declaring that I've waited long enough for you to do what I want, so now I get to take your power for myself. But he knows that zero Democrat Senators will vote to remove him, that impeachment is a losing proposition politically for the GOP because the Dems own the press, that SCOTUS might well not take up a challenge to his actions at all, and that even if the courts overturn his actions there will be no downside to him personally.