There are a number of ways to make certain that everyone working in the U.S.A. has the right to be working in the United States. I have absolutely no problem with criminal penalties, frankly it doesn't even have to be a felony, the vast, vast, majority of people are not going to be imprisoned for almost a year just to knowingly hire someone without the right to work in the U.S.The only solution is to make it a felony to knowingly employ an illegal immigrant. That will resolve the problem overnight.
As an example: if you are the foreign national fiancé(e) or spouse of a U.S. Citizen you (more accurately your spouse) have to pay to obtain an Employment Authorization Document (EAD) to work in the U.S. before your application for Permanent Resident Alien Status (Green Card) is approved (which again you pay for). I see no problem in penalizing those who choose to employ those without the right to work.
This is not to say that many stories are not quite sad, but a) you can't have everyone in the world come to the U.S. or for that matter any other developed country. b) try as a Canadian or American saying I really love the Alps I think I just stay in Bavaria, the Tyrol or Switzerland forever, without permission.