You should try to decrease the amount of food she gets in every meal and not let her choose when to eat because as you say, she's a little overweight. So you should choose her meal times and the amount of food she gets in every meal. For starters, make her food routine once when you wake up at maybe 6 or 7 AM, then at 12 PM, 6 PM, and if she gets hungry again, 12 AM. But, the half-cup should become a 1/4 cup or even less because you'll be feeding her 3 to 4 times a day. And make the amounts of food she gets in every meal the same. Let's say a 1/4 cup or less. If you didn't go with the times I chose, it's okay to choose your own times, as long as it takes 6 to 7 hours between each meal.
In short, it's easier to say give her fewer amounts of food, and more mealtimes than you used to give her before, and it should be 4 at max. If you notice she still isn't hungry after 6 to 7 hours from each meal then make it 8, although that seems too long. But don't give her food before 6 hours, calories need time to burn.
Of course, you should try to help burn them by playing. Training and exercise can help. But to make it more fun for her, stick up with training and playing. If you start to give her meals on routine, she'll have more appetite to be ready for training. Try tossing treats to make her run after them and eat them, don't make them lots of treats though. 5 treats are enough for every season. 3 seasons maximum per day. Training the cat to stand up or do anything else to get treats is also good, just make sure to not give a large number of treats.
So to answer the header in three words I'd say:
- Have a routine for the meals she gets.
- Have her get the same amount of food every time.
- Play with and exercise your cat.
Even if your cat asks for more food at each dish it's important not to give her more. Her health depends on it.