Od razu zaznaczam, że ktoś z doświadczeniem od Androida niech potwierdzi, ale;
obsługa sensora jest wykonywana na wątku aktywności z której go rozpoczęliśmy (no chyba, że jakoś celowo dodasz go do innego wątku), więc można przyjąć założenie do twojego pytania, że będzie to main/UI thread. To samo z obsługą buttona.
Skoro są na jednym wątku, to wykonają się po kolei.
Poza tym, nie ma tu czegoś takiego, że "wciśniesz przycisk i przerwie mi wykonywanie metody która wykonuje się teraz" - albo to co jest pod buttonem zostanie dodane do kolejki, albo z powodu zablokowanego wątku (jakaś bardzo długa operacja) program "poczeka" z odczytaniem kliknięcia użytkownika.
Do użytkowania/nasłuchiwania sensorów na pewno korzystasz z klasy, która rozszerza jakiegoś rodzaju SensorEventListener, której nasłuchiwanie musi zostać zarejestrowane (moment startu), i po starcie nasłuchiwania sobie to już leci "samo".
public void registerListener() {
mSensorManager.registerListener(this, mSensor, SensorManager.SENSOR_DELAY_NORMAL);
}
Oczywiście, że może być tak, że po wciśnięciu przycisku, nasłuchiwanie będzie przerwane, ale stanie się to, gdy obiekt klasy zostanie np. odrejestrowany.
public void unregisterListener() {
mSensorManager.unregisterListener(this);
}
Nie wiem jakiego sensora masz zamiar używać (poza tym, użyłem tylko kilka z nich na krzyż, więc nie wiem czy jest jakiś który "blokuje" thread poprzez wykonywanie jakiejś długiej i kosztownej operacji), ale zależnie od rodzaju działają one poprzez częste wywoływanie żądania o wartość z sensora - właściwa odpowiedź na twoje pytanie ( na tyle często, że lepiej nałożyć jakieś ograniczenie, żeby nie spamowało nam niepotrzebnym wynikami).