I have finally settled for the ballast system:
the ballast tank will be vented like a regular propel based system with two vents valves at the top. When the ballast tank will be full, the boat will be at periscope depth, the head of the snorkel will thus be sticking out of the water. When I want to surface the boat I will just start the compressor and suck air from the snorkel and into the ballast tank.
If I want to dive deeper than periscope depth, the boat will be equipped with two small piston tanks fore and aft that will be used as trim tanks and to get the boat to a precise depth.
This way I don't need compressed air, I don;t need to refuel with propel, the cost is very low compared to full sized piston tanks (Engel), and it allows me to control my sub safely and with the two dive system I can alway bring the boat to at least periscope depth if either of the ballast system fails.
For the periscopes and other masts/cranes I will simply use a waterpump and pistons, pretty much like Skip suggested in his post.
There are 10 kind of people, those who undertand binary and those who don't !