I'm not sure how the "can't deserialise" error came about. You shouldn't generally be able to get that except when viewing a cached result from an earlier version of CodeRunner. So that's a "dunno".
The other two results imply that you don't have version 4.0 installed. If you evaluate a non-existing Twig expression like {{ BLAH }} you just get an empty string. [This was a bad design decision I made about 10 years ago, sorry, but I fear I'd break a lot of questions by fixing it now.]
You can't currently get the CodeRunner version installed through the question authoring interface, though I did just add that capability as a result of your posting :-) However, you can see the entire QUESTION object in user-friendly format by inserting the following code into your template somewhere suitable:
import pprint, json
pp = pprint.PrettyPrinter(indent=4)
pp.pprint(json.loads("""{{ QUESTION | json_encode | e('py') }}"""))
If you have a version of CodeRunner that includes stepinfo you'll see something like the following:
{ 'acelang': None,
'allornothing': '1',
'allowmultiplestdins': '0',
'answer': 'print("Hello world!")',
... (snipping stuff out here) ...
'resultcolumns': None,
'sandbox': None,
'sandboxparams': None,
'stepinfo': { 'fraction': 0,
'numchecks': 1,
'numprechecks': 0,
'preferredbehaviour': 'adaptive'},
'testcases': [ { 'display': 'SHOW',
'expected': 'Hello world!',
'extra': '',
'hiderestiffail': '0',
'id': '1',
'mark': '1.000',
'questionid': '23',
'stdin': '',
'testcode': '',
'testtype': '0',
'useasexample': '0'}],
'uiparameters': [],
'uiplugin': 'ace',
'useace': '1'}
If you don't see a stepinfo field, you're running an older CodeRunner.
BTW: when conducting tests like this, be aware that CodeRunner caches run outcomes, so if you change the question in any way, you also need to change the question (e.g. add a trailing space somewhere) before clicking Check again if you want to see the effect of your change.