The tutorial Controlling Infinite Evaluation says:
 
 When the Wolfram Language stops without finishing evaluation, it returns a held result. You can continue the evaluation by explicitly calling ReleaseHold.
 
It includes this minimal example:
 
 In[1]:= x = x + 1
 ... $RecursionLimit: Recursion depth of 256 exceeded.
 Out[2]= 255 + Hold[1 + x]
 
It appears this is no longer the behavior in version 11.3. Instead of evaluating to a partial result when $RecursionLimit is reached, the original expression wrapped in Hold is returned. Actually, to be more precise, when I evaluate x=x+1 on a fresh kernel I get Hold[x+1], but if I set $RecursionLimit to any valid number I get Hold[x=x+1].
In contrast, the behavior of $IterationLimit is as documented.
The Mathematica StackExchange discussion for reference: https://mathematica.stackexchange.com/questions/184259/unwanted-hold-from-recursive-function/