Cellular.RSSI() obtains the modem mutex since it needs to access the cellular modem. This shouldn’t cause a problem, and it should be safe to call Cellular.RSSI() from a worker thread. However, since both the system thread, the RSSI thread, and possibly also the application thread will all be attempting to lock the modem, while that’s probably not the exact cause, it still might be involved somehow, but I’m not quite sure how.