It turns out the timing-out issue was due to the fact that my navigation system was based on a combobox that loaded a store of the ids of all the transactions. Although this was not raising any issues in desktop mode, apparently loading several thousand records in device mode was locking up memory or something.
I refactored the UI to be based on a simple textbox backed by a model that keeps track of the first and last possible ids, and the issue is resolved.