Fix for "not showing" bug

I believe it's a pernicious scoping problem because:
- it occurs rarely
- when it does occur, the competing exercise never reaches
`debugLog("loading and rendering " + exid)` on line 1113
- despite not reaching the above, it manages to set `typeOverride` on
line 1077

That is, there are two, almost simultaneous renders (say A and B). A
sets its local `typeOverride` then A sets the global `exerciseId`, then
B sets its local `typeOverride`, then B sets the global `exerciseId`,
then A calls `startLoadingExercise(exerciseId,...)` with the global
`exerciseId`, which was the one set by B.

The only time the global `exerciseId` should be set is in
`setUserExercise`.

The real solution is to change the variable names so that global and
local variables are confused with each other.
Merge pull request #122815 from Merbs/not-showing-bug

Fix for "not showing" bug

Test plan: pulled this into webapp and did a practice task and mastery challenge (both including khan-exercises problems)