There's something called post_run_autonomy_commodities. IIRC, the general gist is that when you put it in an interaction, it's designed so that it will push autonomy tied to the desired category of interaction when the current interaction finishes.
Here's an example from toilet-flush:
True
16442
There's also parameterized_autonomy. I'm not quite sure what the difference is from memory (I'm sure you could suss out the details in the TDESCs). But it looks like toilet stuff uses post_run_autonomy_commodities. It might be that post_run_autonomy_commodities has stricter prioritization for pushing the connected interaction?
There's also continuation as loot at the end of an interaction, but that probably wouldn't work here, since you want to push a sim to go do whatever wash hands interaction is available nearby, not a specific wash hands interaction on a specific sink. In this case, sink_washHands has StaticCommodity_WashHands as a static commodity and it (presumably) is pushed as a very high priority through the post_run_autonomy_commodities section in flushing.
So it looks like why you're not seeing it is (I would guess) the toilet-flush part is separate and is called somehow at the end of peeing, normally. If you make sure that part is called, I think you'll get the behavior you're looking for. Or you might need a custom toilet-flush if the animations are not compatible with your custom object.