OK, so here's the update. thanks to all the suggestions - I combined a few ideas, and came up with the following solution.
The observer triggers as items drop, this does two things at once:
- Drives a pulse extender which immediately retracts the secondary piston
- Pulses the primary piston after a short delay to push the items into the space that the secondary piston just made
As the clock decays fully the secondary piston fires and pushes the items.
An added bonus here is spam protection - so if items drop consecutively more quickly than the clock decays, it simply resets the clock so you don't get pistons firing together, or too quickly. This way nothing ever ends up on the top of the slime/honey blocks. I've added a front-side view for those curious as well.
Thanks for all the help and tips!
nice! I see we both landed on very similar solutions to this. I'm going to implement your double-reversi loop to see how that plays out - it's the main difference to mine which keeps the secondary piston extended by default, and it retracts and pushes based on the pulse-extender decaying fully.
I like this, thanks for sharing!