This sounds very similar to a problem I have been having (at home and at
work), only your issue sounds like a much worse case of it.
Ref: Qubes 4.0.1, Fedora-30 template
When I come into work in the morning, or upon booting my workstation at
home, if I launch an app in a non-running VM (sometimes subsequent
re-launches of a VM) the app I used to initiate that VM does not come
up. The pop-up message of the starting VM appears, then nothing. The VM
gets started and the disk is whirring away, but the app never appears.
If I launch the same app again sometimes both instances of that app
appear one right after they other. Between those two invocations I might
even wait until all the disk activity settles down and everything works
fine.
If for instance I use Qubes Manager to "update qube" the window almost
never comes up the first time. The second time it will. If I start the
template first and then select "update qube" it almost always comes up
correctly, unless something is chewing up all the CPU or hitting the
disk pretty hard.
My issue seems to be related to too much activity of the AppVM's
services creating enough lag to the system that the qrexec either times
out or gets slowed down to the point of not completing the launching of
the app. This is frustrating because after the first launch it seems to
work better, so testing of why it isn't starting clearly needs to be
planned in advance. Perhaps some resources get cached in memory the firt
time so it starts that VM quicker, and thus the qrexec doesn't time out?
I would suggest turning on the "Run in debug mode" option in the Qubes
Manager's AppVM configuration so you can collect better logging
information and see if that tells you anything. That is what I am
planning to do tomorrow morning before launching anything. I had just
turned it on for one VM this morning that sometimes acts up, and
wouldn't you know it, it has not repeated that problem launching that VM
the second time. Maybe tomorrow, or if I leave the machine alone for a
while I might get it to repeat again. I think I will make a habit of
turning on the debugging before launching any new VM's just in case I
can catch it in the act of not acting properly.