Made some progress on this, using setup_postdata( $post_object ) is a no-no according to the codex. You should always use setup_postdata( $post ) where the var name is “$post” and not anything else.
See Function Reference/setup postdata
Switching my example from $blockPost to $post has partially cured the issue although it persists on “Trying to get property of non-object” on the last iteration.