2 of the great rules of IT have just kicked in:
1) As soon as you give up on a problem, the solution wanders casually into view
2) As soon as you post to a worldwide forum, someone local has an answer
My stored proc had GO statements in it. This caused the immediate execution. Lesson to self: don't use GO because it seems like a good idea: just batch when necessary.
Bill.