The M5 Stamp was a great board to get this project going, but it's a little too expensive, so I started looking at other ESP32 boards.
I already had a few in my parts bin, so I started playing around to see how they would fit in with my original board design. I started with the basic ESP32 surface mount module, as this was very similar in size to the M5 Stamp so It was pretty easy to modify the design.
Here's the result:
Pretty happy with this as it has met most of my original requirements, It keeps the Pi Zero format and the best thing about them is that they only cost $1.60. The down side is that they don't have a USB port so an external programmer will need to be used, this could work in the Robotics Club, as students could share, but it's not so great if that want to take them home. The cost of the programmer would negate any cost saved from using the cheaper module.
I also had some of the ESP32 DevKits, these are useful little development boards, as they have the ESP32 module plus the USB connector and associated circuitry. This makes them very easy to use, the downside is that that are quite a bit bigger and so they won't fit inside the footprint of a Pi Zero. What's also a bit confusing, is that there seem to be a few different styles of these boards with different pinouts.