Differences between `RunSuspendedContext` and `RunCallerContext` resumption value passing

Both RunSuspendedContext and RunCallerContext have the following text in their description:

It resumes X context (sending it Y as the resumption value)

X and Y are different, but the point is that both resume a context with a given resumption value.

Given that, I'll expect them both to pass the resumption value to the resumed context in the same way, but that isn't the case. RunSuspendedContext says in step 4:

Resume the suspended evaluation of context using completionRecord as the result of the operation that suspended it.

And RunCallerContext says in step 4:

Resume callerContext, passing NormalCompletion(value)

Other than value not being a CompletionRecord so it needs to be wrapped in NormalCompletion, why are both texts different? Is there any difference between how both pass their respective resumption value to the resumed context?

Each of them is factored out from multiple chunks of pseudocode, and (pretty much) preserves the wording used in those chunks. (So you could have asked the same question of the pre-existing pseudocode.) Note that PR #2962 will normalize the wording.

Is there any difference between how both pass their respective resumption value to the resumed context?

Not as far as the spec is concerned, but an implementation might handle them differently.