How about once your Pokemon reaches 50 coins, it automatically returns to you, so you don't have to see it sitting there earning nothing for days, if you are unlucky. This would make the gym easier to take down for rival teams, or open up a new space for someone else from your own team to get in. I have got two Pokemon back today, which have been gone for over two days, and I have earned zero coins from them, as I already got my 50 coins today from another one. Very very disappointing.
Just read all the comments from the top and noticed I've said the same as @SkyBato. Wasn't copying you, just had the same good idea it seems, although Niantic wouldn't agree, as it would mean they were constantly paying out, instead of as it is now, not so often.