Here is what we are doing.
Kids meet twice a week (7 A.M) in two groups: 4-6 grade and 7-9
(our school goes through 9th grade) and work on problemsolving.
Contests are administered during school hours by a parent volunteer (yours truly). When kids leave I hand them solution pages with correct answers and solutions. At that time they are thinking about the problems and maybe, just maybe, something will stick in. My son also holds impromptu sessions right after the contest, in the hallway, discussing his approach to solving given problems. Kids do listen then!
I think that it is of paramount importance to hold those contests during school hours. We have about 100 kids that participate. If it was after school the numbers would be significantly lower.