BLE (most of the time) not working while 9V battery powered

A regular 9 volt battery has a very short life on most Arduinos and is only really useful for short tests.

There was a 101 update but I suspect that would not help in this situation.

It is clear from your question that the power supplied by the USB is enough to keep it going as it is a constant current / voltage source unlike the battery which drains too quickly.

A better external source such as a LiPo or other rechargeable heavier duty battery would by my first choice.