Have you tried level streaming as opposed to opening autonomous levels? In this way you could use the load streamed levels, which may help to address some of the lag you are seeing. To prevent the input actions from occurring during restart level, you can set a boolean that, if set to true prevents your touch input command from firing. Set this to true on RestartLevel and false again during begin play. This should prevent the unnecessary firing during the level loading.
Hmm, I was thinking the same thing but couldn’t get either code to work. I will look into both ideas even further and report my findings. Thanks !