I'm not going to comment on whether you should try to fix things at your current company but I have some good perspective on the job market and some of the options that you are looking at so I will comment on those things (both from your original question and in some of the comments)
I just finished a job search focusing on medium size companies (specifically I was looking for funded, growing startups with say 20 < total staff < 200). I have a good network and got some great leads and had three great offers in hand after a one month search process. I don't say that to boast, just to point out that there are lots of opportunities out there. Everything that I saw and heard in the process confirmed that this is a great market for a developer looking for a job. Several other people whom I know were looking at the same time and all have accepted or are close to accepting new positions. For more confirmation look at Fred Wilson's post today, it even links to the USV jobs board: http://www.avc.com/a_vc/2011/03/the-war-for-talent.html
Unless there is something specific that you are looking for in a large company (and it sounds like there isn't particularly) then maybe you should be looking at funded startups as well? This can be a great option: the company is funded so you probably don't have to worry about getting paid this month or next month (although that concern may come sooner or later, keep alert!); they are small and hopefully growing so you still get to wear lots of hats and can have a large say in defining your role and can still see your personal impact on the company's future; they won't have the bureaucracy or organizational overhead of a large co; lots more too. True you won't have as large a stake as you have now but 0.001% of something valuable is better than 25% of nothing!
As to finding a job, in my experience getting in through a recruiter is the hardest way and least likely to succeed. Having your resume submitted by someone in the company or finding a founder here on HN or whatever other inside track you can find is much more useful. Now that I think about it, I realize that in 16 years in the industry I have never once gotten a job through a recruiter (that isn't entirely true, my first contract position went through a recruiter but they were given my resume by someone at the company that was hiring contractors). Every time except that first one I started the conversation with the person or people who would be making the hire/no-hire decision and going back to recruiting to setup the interview loop, etc. was just a formality.
So fire up your network (and if you don't have a good one then start building one! Go to startup events, Python tech talks, whatever excites you). Start looking for opportunities, talk to people, maybe go on some interviews to see what is out there and to see how you do.
In one of the comments you express concern about your age, "near 30 and haven't broken out yet". Well, I say don't worry so much about that. I was 27 when I got my first computer industry job as a contract Software Test Engineer at Microsoft; I am 42 now and doing very well in Senior Engineer/Architect level positions. Don't be fooled by the myth that you have to make it by 25 or whatever.
Your resume may be a bit thin, that is a concern but remember that everyone started with a blank resume. You need to figure out how to explain your accomplishments over the past three years that doesn't focus on not shipping and does focus on what _you_ did do.
Don't worry too much about being a job hopper at this point; three years is a long time at one job and squarely within the normal range. If I saw someone with a string of <2 year jobs or a couple of 6 month jobs I would ask about it, and there could be a reasonable explanation, but 3 year jobs? No worries there.
One very good piece of advice that I got as I started my search: you only get to pick a new job half a dozen or at the most a dozen times in your career so pick good jobs!
I just finished a job search focusing on medium size companies (specifically I was looking for funded, growing startups with say 20 < total staff < 200). I have a good network and got some great leads and had three great offers in hand after a one month search process. I don't say that to boast, just to point out that there are lots of opportunities out there. Everything that I saw and heard in the process confirmed that this is a great market for a developer looking for a job. Several other people whom I know were looking at the same time and all have accepted or are close to accepting new positions. For more confirmation look at Fred Wilson's post today, it even links to the USV jobs board: http://www.avc.com/a_vc/2011/03/the-war-for-talent.html
Unless there is something specific that you are looking for in a large company (and it sounds like there isn't particularly) then maybe you should be looking at funded startups as well? This can be a great option: the company is funded so you probably don't have to worry about getting paid this month or next month (although that concern may come sooner or later, keep alert!); they are small and hopefully growing so you still get to wear lots of hats and can have a large say in defining your role and can still see your personal impact on the company's future; they won't have the bureaucracy or organizational overhead of a large co; lots more too. True you won't have as large a stake as you have now but 0.001% of something valuable is better than 25% of nothing!
As to finding a job, in my experience getting in through a recruiter is the hardest way and least likely to succeed. Having your resume submitted by someone in the company or finding a founder here on HN or whatever other inside track you can find is much more useful. Now that I think about it, I realize that in 16 years in the industry I have never once gotten a job through a recruiter (that isn't entirely true, my first contract position went through a recruiter but they were given my resume by someone at the company that was hiring contractors). Every time except that first one I started the conversation with the person or people who would be making the hire/no-hire decision and going back to recruiting to setup the interview loop, etc. was just a formality.
So fire up your network (and if you don't have a good one then start building one! Go to startup events, Python tech talks, whatever excites you). Start looking for opportunities, talk to people, maybe go on some interviews to see what is out there and to see how you do.
In one of the comments you express concern about your age, "near 30 and haven't broken out yet". Well, I say don't worry so much about that. I was 27 when I got my first computer industry job as a contract Software Test Engineer at Microsoft; I am 42 now and doing very well in Senior Engineer/Architect level positions. Don't be fooled by the myth that you have to make it by 25 or whatever.
Your resume may be a bit thin, that is a concern but remember that everyone started with a blank resume. You need to figure out how to explain your accomplishments over the past three years that doesn't focus on not shipping and does focus on what _you_ did do.
Don't worry too much about being a job hopper at this point; three years is a long time at one job and squarely within the normal range. If I saw someone with a string of <2 year jobs or a couple of 6 month jobs I would ask about it, and there could be a reasonable explanation, but 3 year jobs? No worries there.
One very good piece of advice that I got as I started my search: you only get to pick a new job half a dozen or at the most a dozen times in your career so pick good jobs!