The convenience is totally worth it for prototypes and very early stage startups. The less work I do on a system level is more time I can spend on my startup.
Once you move past that, because your app is well structured you can easily deploy on your own hardware.
Really? Do you work on your own car? Is it because you think you aren't smart enough to do it or because you think that spending your time on other efforts is a more valuable configuration?
AWS is the electric company. Heroku tends to be the circuitry, outlets and light switches for your house. You may take it for granted because it looks so simple, but it's the simplicity that makes it great.
As PaaS providers begin to mature and turn attention to more worthy challenges (like geo-agnostic deployments, easier scaling, for example), then their value is only going to increase.
They will shut down your instance, if you don't use it for an hour or two - and then it will take like 8-10 seconds to load it again. If you can live with that, I guess that would work, yes.
From what I see, when you have a single dyno, Heroku deploys you to a different environment sandbox called "development". Typically that has less uptime and takes lots of upgrades all the time with interesting consequences. I believe they promote to "production" applications much less frequently.
Once you move past that, because your app is well structured you can easily deploy on your own hardware.