You don't say how many kids you are having - that would be helpful to know.
I'm not a big believer in expensive birthday parties - I think it's out of hand and families are going broke. These kids are 6 so they don't need champagne and caviar, that's for sure. They also don't need (and IMHO shouldn't have) huge extravaganzas on birthdays. These parties get so expensive for the host family, but also for the guests whose kids are invited to 25 parties a year, with transportation and gifts! So scale it back.
If you want to avoid paying for lunch, then you don't have a party around noon. Kids will be absolutely starving after an hour of splash play, so you have to feed them. I'd do pizza and cake, and say that the party is from 10-noon, with bathing suits & towels needed from 10-11 and something semi-dry to put on (even a sweatshirt) afterwards. Give them food, open the gifts (unless you are having a huge number of kids, which makes it impossible for kids to enjoy watching this part), and skip the games (there's no time). Make it clear to parents that this is well supervised because the splash park will just be open to the party guests (if I understand you correctly). Then you have a good "excuse" for ending it before the public crowds come in.
Alternatively, I'd have a party at home - we followed the "year rule" - if you were 6, you invited 6 friends. If you were 7, you invited 7 friends. You can have this at your house from 2-4, put out the sprinkler, play some yard games, and have some snacks (something semi-healthy like veggies/humus and fruit kabobs which look cute and are easy to make, plus cake or cupcakes), open presents (which you can do when there are only 6 guests!), and send them home. Kids melt down after about 2 hours so I think you're on the right track keeping it shorter.
I think your husband needs to get on the team of solutions and not on the team of criticism, and do some work here.