Having left a bit of time for responses, I'll post my own thinking and the result of the hand. Expanding on how my thinking went live at the table, we have ...
Both are unknown, but I don't want to treat them as absolute knuckle-draggers until given reason to do so.
SB is the more difficult to range -- I don't really expect a good player to have much of a flatting range here; most hands you'd want to continue with play better as a three-bet. But whatever the situation, I'd be surprised if he's playing more than 20% to 25% of hands in this spot -- even recreational players have hoisted in the importance of position.
BB's range could be quite wide -- he's getting 5 to 1 on a call closing the action, so it's fairly reasonable to call with a wide range of speculative hands and hope to be blessed with a favourable flop. He could easily be continuing with 60%+ of hands here, probably including any two suited.
In both players' cases, I'd expect the ranges to be somewhat capped -- while some players might get fancy and flat AA from time to time, KK-JJ and AK are likely three-bet here, and the BB has a good opportunity for resteal jams with small pocket pairs, suited aces, etc., in addition to the usual value range.
Before the flop, I'd figure that the SB's range is in the lead, with me second, and BB third.
On the flop
When the flop comes 9 high and rainbow, we're likely more compressed -- SB isn't as far ahead, and BB isn't as far behind. Depending on how SB plays his big pocket pairs (are they in his range, or does he 3-bet those), I may even have moved slightly into the lead.
Can my opponents have sets? Difficult to say. Were I in either of their positions, any of my pocket pairs would have been 3-bet for value or jammed as resteals. Then again, I'd (almost) never flat from the small blind, so it seems likely they're a little more passive than I am. If they're going to have sets, I'm going to guess 66 as a decent candidate for having been flatted.
BB can have two pairs, but SB is unlikely to be playing wide enough to have 96s in his range. Similarly, for the open-ended straight draws with 87, and the various pair plus gutshot combos -- they're almost certainly in BB's range, but not necessarily in SB's range.
So when SB leads on this board, I think it's unlikely that it's a drawing hand / semi-bluff; it's either value or "air" in the form of random overcards, likely with backdoor flush draws. BB's call certainly complicates things; slowplaying his monsters is certainly a reasonable play on his part, but, at the same time, he also has far more drawing combos / pair with gutshots that might want to hang around for one bet hoping for a fortunate turn.
What's my continuing range?
With this board, Q9o sits somewhere around the top 15% of my hands. (99, 66, 22, 96s, AA-TT, A9, K9 are better). How wide am I calling here? Would I call with 87s? Yes, I think so. Well that sat about 33% in my range in terms of equity (before the betting), in about the same ballpark as hands like A2o and AKs with backdoor flush draws. Regardless of how sticky I want to get with some of these marginal hands, I think it's pretty clear I'm continuing.
Now, what's the structure of my continuing range?
If I call here, the pot will be 360 chips (18 BB), and we'll all have 380 stacks -- effectively a pot-sized bet left over. It seems likely that a good fraction of turns will see one or both opponents going all in.
Given the pot-size relative to stacks, I don't think there's any raise sizing other than all-in which makes sense -- even a min-raise click back to 160 just bloats the pot and prices us in to call off on the river.
Do I have a shoving range on this board? Most definitely. I'd argue that a hand like 96s is a perfect shove hand -- it blocks a large amount of opponents' value ranges, and doesn't have the same redrawing potential as sets against the straight when it comes it. Shoving 96s laser targets the draws and makes them pay the highest possible price while we're still ahead. It's only two combos, but hey, we have to start somewhere ... :)
So I have to sort my range into three buckets: hands I want to call twice with (or call, then bet when checked to), hands I only want to call once with, and hands I shove.
Broadly speaking, in GTO ranges in these scenarios, the strongest and weakest hands are called, and the intermediate strength hands are shoved. Blockers and other considerations make the boundaries between strong, intermediate, and weak somewhat "fuzzy", but it's a good rule of thumb.
99 is obviously the prototypical call/call(bet) hand.
Something like 77 would be a good example of a call/check(fold) hand.
Now, working in from these two extremes, where do my Q9 hands sit? Kind of in that awkward middle regime ...
Raymond's analysis follows a similar line to mine, and concludes that Q9o likely resides in the shoving range. Arthur, however, correctly points out that when we shove we are sacrificing the opportunity to utilize our positional advantage on the turn to leverage the additional information in the form of the actual turn card, and the betting action of our two opponents.
I think the crux of the matter lies in the need to have balanced ranges for each of our possible actions. We're trying to optimize our EV for our entire range, not just for a single hand.
Think about the classic polar versus bluff-catcher scenario -- sure, my bluffs win a bit now and then when I do get someone to fold better, but the real money is made when the bluff catchers are "forced" to pay off my value hands. Though not quite as extreme in this case, it's a similar concept -- we're not necessarily trying to get A9 to fold, we're trying to give A9 a reason to call and pay off our 66 / 96s / JJ / TT, etc. Once we decide we're going to have a shoving range, then we need a decent number of combos to balance it.
So what happened?
Obviously, in real time at the (virtual) felt, my thinking wasn't quite as nuanced, but I came to the conclusion that Q9o likely belonged in my shoving range.
I shove. SB calls. BB folds.
SB has A9o, and the turn and river fail to bring me one of my three outs. One hand in, and I'm all done. :(
No happy ending here, but an interesting situation that I'm still pondering. If ever I end up springing for a solver, this will almost certainly be one of the hands I'll want to explore first.