Then today, a month later, I get a
migrated. I'm sure this is the expected behaviour but I would expect it to happen right away.
Digging deeper into the question timeline I see that someone upvoted the question on Area 51 Discussions today and it seems to have been that that prompted the system to take action against my illegal rep stashing.
Surely the reputation should be removed at the moment of migration now recalcs are dead, and definitely not only after an upvote on the destination site?