I'm Grace Note, a Community Manager at Stack Exchange.
There is no defined length of time that a site stays in public beta. The important thing to understand is that a long beta is not a sign of struggling or problems, at least not from the community side of things. There's nothing wrong with being in public beta.
At raw, we like to see things like sustained and continual growth of the traffic towards the site, a userbase that is both interested in sharing knowledge and in managing their peers, and content that the community truly feels proud of making the internet a better place. This is a quick overview but that's a general look at what we look for when choosing what we feel is ready to graduate.
For a site to graduate, though, one of the requirements is that we create a design for them. These designs take some time to make, however, which means we have a decent backlog of designs to go. We have a queue of sites already lined up that we've marked as "Ready to graduate", but until the design is completed, we cannot move forward. We also cannot give any estimates on when the designs will be completed. As such, these, too, stick around in Beta - not out of any fault of the community behind it.
If a site remains in Beta, you can look over the site and think about how your stats are serving your community. Is your traffic growing, is the income of content interesting and useful, are people engaging with each other? If anything seems off, then that is something to take action on, and we on the Community Team at Stack Exchange perform periodic reviews on sites to check their general health and for problem concerns. But it's safe to say that if we don't speak up, and if you as a community find nothing wrong, that things are smooth sailing.
Because of the nature of the queue, there's no functional difference between a site that is "Ready for graduation", and any other public beta site. The default state of a site should generally be interpreted as being on the road to being ready to graduate, if not already at a status that is ready to graduate. Some time down the road, there will be a post from the Design Team that proposes what the new design will be. That will be your cue to be excited for graduation. Until that post comes in, there's no need to worry about your site progress if you can't find anything wrong.