1) I have been developing code for over 15 years now. Before that I worked for 7 years in S/W QA. I am passionate about my work, but not obsessed with it. Yeah, I used to work 70 to 80 hours a week when only 40 to 50 was required. Now I don't for a number of reasons: I don't need to (I am more productive now), I have other interests that occupy my off time, I need the downtime to recharge/reboot/flush the cache. I try to work smart instead of long hours. So don't measure whether someone is good or passionate by the amount of time they put into an endeavor. A well rounded person is usually a better worker in the long run.
2) Judging other people's work by how you would solve a problem is not always valid. There are many different ways to write logic to solve a coding problem - many are as equally valid, elegant, concise and readable as the one you would choose.
3) Would I leave programming? Not until I retire. I like what I do. Often I love it. Once in a while I hate it - but I get over that. I got into s/w dev by mistake (I have a EE degree), and before I went to college I worked just about every crap job you could imagine to make ends meet - many of those jobs I hated, so I know the difference.
But if I won the lottery today, I would retire and probably not write another line of code. I have plenty of other things I would do instead - like laying on a beach in Tahiti, or touring Europe on my Ducati, or taking an occasional philosophy/science/math class - of which none would earn me money, but none of which I would ever get bored with either.
Meanwhile, until I retire - I like what I do, but it is a job and I wouldn't do it if I didn't get paid or if I didn't need to get paid.
I am not a 'rockstar' (most of the coders I have met who think they are a 'rockstar' aren't either) - a totally overused term. I take pride in what I write - but I am often held back by deadlines, by supervisors who feel we aren't going to need what I want to do then six months later decide we do indeed need what I wanted to do at the beginning (much more often than not).
4) I do agree that most projects/companies/startups seem to fail mostly due to managerial decisions/mistakes - some significant portion of which were scheduling problems (impossible deadlines/milestones, etc.). Sometimes it was also the market/economy taking a left turn or downturn that was unanticipated or that could not be planned for. Sometimes the technology was at fault (the code, the platform, the hardware, the architecture, the time estimates which most devs are terrible at - including myself). But yes, more managerial problems than dev problems - and yet it is usually the management staff that stayed employed and the dev staff that was let go.
Certainly, if you don't enjoy writing code, think about finding a profession that you do enjoy. Life is too short to work in a job that you hate while there is something you could work at where you look forward to going to work everyday. BTDT.