Bugfix: submitblock: Use a temporary CValidationState to determine accurately the outcome of ProcessBlock

Fixes #5083 (based on #5105)
The current contract for ProcessBlock is that it only returns after the best known valid block is made active - taking the newly processed block into account. Adding that as a comment (which implies that it currently can't do any asynchronous processing) sounds fine to me.