Ensure registration controller block yields happen on failure in addition to success 

...and closes #2936.

Now with 100% more unit tests.