У меня такое ощущение, что (во всяком случае через обратный вызов) если прислано несколько команд, то они выполняются в обратном порядке. Так, например, я засылаю - открыть смену и закрыть смену, а выполняется наоборот, кстати .... по-моему на эмуляторе, если сессия истекла, то спокойно открывается новая.
Во всяком случае, у меня в системе стоит для теста.....что закрывать сессию, если истекла и открывать, если закрыта. И уже второй день вижу, что всплывает чек открытия смены и на этом же экране чек закрытия смены. Из чего я делаю вывод первый - в обратном порядке, вывод второй - смена закрылась самостоятельно и даже чека не было на эмуляторе.