Fixed!
A local jet ski mechanic convinced me over the phone that it was probably a clogged low speed jet, and that I could probably fix it myself. The (dual) carbs turned out to be very simple to remove, there are choke and throttle cables to remove (no tools), and 4 hoses to remove (screwdriver and needlenose pliers). And then just 4 bolts holding the carbs (though it's two carbs, they're only one unit to remove) down to the intake manifold.
I took the carb to a clean table, took off the diaphram covers, removed the jets, but they were perfectly clean and open. In fact the entire carb was pristine, as I'd just had it rebuilt last year.
Upon closer inspection, I noticed the idle adjustment screw was completely missing from one of the carbs. I found it on the bottom of the jet ski inside, and replaced it.
Then, it didn't run at all! Turns out there are two hoses coming from the tank to each carb and I had switched them. I figured they were both supplying fuel to each carb so I didn't pay attention to which was which.
I took pictures each step of the way with my phone just in case I forgot how it went back together.
The kids are out tubing on the jetski now, it's running great.
BTW, this mechanic -- who really seemed to know what he was talking about -- recommended AGAINST carb cleaner to try to unclog the jets. He thinks it does more harm than good. FWIW.
Thanks for the comments, this is a great forum.