I find that i have to shake the device for about 5 seconds straight while making completely sure not to touch the screen at all in order for the menu to come out. This is less about expo and more about the limitations of picking up accelerometer input in background services, and the way android allows communication between a service and an activity - a local broadcast is the easiest but slowest way. Assuming this is the way it’s implemented, maybe the expo team could do a little bit better by using a bound service but bear in mind they have a trillion feature requests and in my opinion this one is trivial compared to things like enabling image caching.
For this reason I find it much better to develop in the emulator since you can just press ctrl+r to reload. If you must use a device then perhaps you could just exit your app and reopen it from expo. It only takes about an extra 2 seconds to do it this way. This is still much faster than developing native apps. A true native app (being developed in xcode or android studio) takes at a minimum 15 or so seconds to build and test your changes.
Also, @rpolonsky, expo is by far the least brittle environment for react native development. If you want to know brittleness, try to maintain a 2 year old project that was never in expo. You literally have to rewrite code ALL the time whenever they abandon your navigation library or Facebook decides to deprecate some way of doing things in React.