Hopefully it fixes things for you.
A number of years ago I built a module for televisions to allow the system to remember on/off state and input state. So, if you pressed 'Input 3', it would check if the TV was on already, if it was not, it would power it on. Then, upon full power on state, it would check what input it was on. If it was on input 3 already, it would not issue the command to switch input, but if it was on a different input, it would send the TV to input 3.
If the TV was already on at the start of the request, it would immediately switch to input 3, but only if necessary.
It also had options for forcing an input on power up or to repeat an input request. So, if it was already on input 3, it would tell the display to go to input 3 a second time. Just enforcing that it is on the proper input.
I built this for commercial use for TVs, but I found that it worked really well for AV receivers and any other products that had a startup sequence that needed to be followed. For cable boxes I sent the 'MENU' button, then followed it with the 'EXIT' button, just in case it was already on. Make sure the FiOS boxes were ready to be used. Worked well. Denon, Yamaha, Onkyo, and Sony AV receivers all worked really well with it.
Long ramble, but the idea is that if you have something that doesn't work perfectly, then it is up to the programmer to put something reliable in to ensure it works every single time. I control my Yamaha receivers over the network, and unless my network is down, the control has worked perfectly, for over a year now.