Hi Anna,
Wow - I'm not sure what to say about a three year old!! I am so not there yet and if there's one thing I've learned about mothering its not to underestimate the stages to come!!
But - for future little ones - this is what I've decided to do. (AND ITS WORKING!!)
We have a playpen for him and he was doing fine in that without me in sight but then he wanted to just be near me/seeing me/etc all the time. So I moved the play pen out of the playroom and into my workspace. I set him in there, with me just out of sight, gave him some of his favourite toys, and left him there. When he started fussing, I would give it a couple of minutes and go back to him and let him know it was play time and maybe show him another toy or something. After about 20 min and two visits, he was really over it so I went to him again, reminded him I was there and stayed within sight, working on my laptop. He did another 20 min contentedly (no cheerups needed), then had a major poo and needed a nappy change. I figured that 40 min was a good start.
We have been working on this 1-2 times per day since and he is continually improving. I try not to keep him in there longer than 45 min. I feel like for our lifestyle and his development, this is a sufficient time. Besides, I do enjoy getting to spend time with him and he is at a fun stage of exploring the house, opening drawers and cupboards and I want to allow him some time to do that with my supervision/involvement as well.
For us, the key was CONTAINMENT - because he would just crawl over to me and whine at my feet to be picked up or play with me. When he couldn't move very far, it forced him to be content with what he already had. (Maybe good boundaries DO produce good creativity??)
That said, I've noticed since we started, he will sit contentedly on his own to play better too. This morning, he crawled to and sat in our entry way playing with daddy's ball cap for a good 15 minutes while we were getting stuff done. This is a major improvement for us!
Anyway, hope you're having a great day with your little one!!