You should stop your crippling thinking habits, like all-or-nothing thinking that becoming a programmer is only worth it if you can get into "Top 4" companies (if I read that post correctly). Or, while your family situation kinda sucks, you feeling guilty doesn't help here at all. If you had a friend in a similar situation like yours, you would suggest that as long as they are actually trying to improve their skills and get a job, there is no point in feeling guilty about not succeeding, it's counterproductive.
Even if you do the puzzles 3x slower than "average programmer", but you still can do simple ones, you're much better than most of people who just can't solve them at all and won't bother to learn. I don't know what's the job market in US now, but you can probably get a job somewhere in IT to pay your bills (maybe try QA if you get no luck in dev). I mean, you got a CS degree, this already puts you in better position than many other IT job seekers.
Even if you do the puzzles 3x slower than "average programmer", but you still can do simple ones, you're much better than most of people who just can't solve them at all and won't bother to learn. I don't know what's the job market in US now, but you can probably get a job somewhere in IT to pay your bills (maybe try QA if you get no luck in dev). I mean, you got a CS degree, this already puts you in better position than many other IT job seekers.