1)Só complementando a resposta do Rubens. Este é o comportamento esperado, mesmo em produção. Quando expirada o status permanece ATIVA, mas já não é possível pagar. O Bacen definiu assim, pois como está ATIVA te permite dar um PATCH /v2/cob/:txid e aumentar o tempo de expiração, possibilitando o pagamento novamente, por exemplo.
2) A hora segue o fuso horário UTC-0. Estando no fuso de Brasília, segue UTC-3.
3) Acredito que deve ser no backend também