OK, did some restructuring in RoutingFrame, it makes a bit more sense now. Also slightly improved turning while walking, slowed down pets (too much?) and fixed the animation smooth stop happening when approaching doors (now only happens at very end).
Next up is handling slots a lot closer to what the original game does. Prioritise getting to the object's room first of all, and then parse the provided slot, so that if specific problems occur we can give route feedback (no chair, wall in way). Reject destinations based on the obstacle map, instead of the poor excuse for checking that we're doing now.
Unrelated, avatar thumbnails and custom icons from push interactions now work:
I also fixed a bug with the SimAntics error catching which was causing it to crash with any and all errors. No idea how I overlooked this.
EDIT: on closer inspection, the original game doesn't even have smooth stop/start for walking, so we're doing one better there. Would have to be disabled if we had any sort of cross compatability. Also halving pet speed is correct.