This is odd – it was working fine and then it I noticed that the submenu was empty (including in the source html). Now if something is in the cart, the submenu has content *only* if you’re on a product page.
Doh – I figured it out. I had copied a snippet from another site for optimizing Woo performance (mainly removing things on non-product pages). That was it, I just need to figure out which snippet was the issue. Sorry for the trouble!