The content isn't ever permanently uploaded unless someone hosts it permanently. Under the surface, IPFS is closer to BitTorrent than Freenet/GNUnet. You never host data for anyone else, only yourself. So your content isn't permanently uploaded just by asking another node to download it.
If you pin a piece of content, you're only telling your own node to not garbage collect it. Other nodes can do as they please, they won't even know you're pinning it.
Other nodes can download it for as long as your node is online. If you shut down your computer, they can't download it from you, but they might still be able to get it from other nodes. When you turn on your computer again, it'll be available from your node again.
Also note that if a piece of content is highly desired, it doubly increases the availability. Firstly, it means the content gets more seeders, and secondly, it means the content won't get garbage collected, because you'll never throw away active content if there's more stale content to throw away instead.
Also, your content is automatically pinned when you add it. You only need to do
pin add to pin content someone else uploaded. So step number 3 will not do very much other than put unnecessary stress on the gateway, since they don't tend to have much bigger caches than any other node.