Alternative for EfiShellProtocol->Execute() using EDK2 and LVGL

We are currently using EfiShellProtocol->Execute() to execute a EFI application from our EFI application(which is a GUI application).
Can someone suggest an alternative for this function to use in EDK2

The problem with the above protocol is when we execute the EFI application from the GUI, it is overwriting the GUI ie) the efi is creating new shell (the GUI get replaced with new shell) and started executing in that. After that we can able to bring the GUI.

So is there any way to execute a EFI application in background or in child process or is there any way to skip the creation of new shell?
Our requirement is to display the GUI while executing the EFI application.