My kids (twins almost 4) take a long time too. Usually, I think it's because they get distracted and sometimes because they aren't hungry.
One likes to get up and wander around a bit, so I've started telling him that if he gets up from the table, it means he is done and I will take his plate away.
Both, but one more than the other, sits there like he is waiting for us to feed them. And sometimes we get frustrated and start feeding him, just to get done with dinner. We decided that we are going to start just letting him sit there staring at his plate. If he doesn't eat, he will be hungry at his next meal (which may just be the leftovers of the meal he didn't eat). If they don't eat dinner and ask for a snack before bedtime, then their snack may likely be some of their dinner.
If your kids will just sit there when you leave the table, I'd let them do it until their normal bedtime. But I'd give warnings if they were really taking that long...like "In 10 minutes it is bedtime and the plates will go away. There will be no playtime."
Another suggestion would be to go into another room and do something fun that they might be interested in. If they leave table without finishing, then remind them that if they leave the table, then they are done eating and put their food away. If you do that enough times, they might start eating faster...especially if during dinner you discuss the fun thing that you will do after dinner is over. Or even let them pick the fun thing to do and then tell them that they can only do it when they are done eating and if it's before bedtime.
But I'm sort of in the same boat as I'm just starting in on pushing the consequences of not eating for my kids. My kids won't sit at the table so I have to do more of taking the plate away to entice them to finish their meal in a reasonable time.