Easy decision for me: #2.
IMHO, Staying with your family is most important. Since your husband has a
nice and stable job, and his salary is your family's main income, your role
should gear a bit more toward your family, especially your kid is little.
It's a small sacrifice I am willing to take.
Your kid is going to school soon, and starts learning reading/math/piano etc
. He/she needs lots of time from parents, especially mom. You are very
important to his/her early development.
You won't lose much in your career development. It's just a job, and you can
always find a better one. It's your first job, a step upward, not your
destiny. Bigger step or smaller step, you are going in the right direction.
You'll get your first working experience which is more important than where
you get it from. The contract job seems to be less demanding, so you will
have more time be with your family, and prepare yourself for the full-time
dev job that you really want. (Being a contractor is actually not a bad
career path. More and more people are taking this route. Once you get your
experience, your rate will go up and could earn much more than full time
employees)
Also, staying in your current city will always give you a better chance to
find another job there. Once you get into company #2, even though you are a
contractor, you have an inside chance of getting a full-time dev position.
Even though the manager can't promise you anything, but once you are inside,
it's a whole different story. You work hard, you impress people with your
work, you make friends, you know the openings before they get post, ....
Think about it.
Unless, you and your husband have a plan eventually moving across the
country to where your job #1 is, I would stay with your husband and take job
#2.