Vai ser necessário alguma coisa de código nativo. Pelo Flutter ou .Net Maui creio não ser possível diretamente realizar o bloqueio, ao menos não por enquanto.
Quanto a leitura do sensor, creio que é possível fazer em qualquer framework. O mais complicado é definir os valores de leitura que indicam que há uma situação. Se as valores de leitura forem muito "apertados", o dispositivo pode nunca bloquear. Se ficar muito "frouxo" o dispositivo pode bloquear a qualquer movimento.
Deveriam ser pensados outros eventos para realizar o bloqueio, como a cada X tempo bloquear aleatoriamente. Esses outros eventos são o principal, é o algoritmo para resolver o problema do mundo real.
Talvez é interessante definir uma senha simples no aplicativo, diferente de qualquer autenticação do dispositivo (4 números por exemplo). Mas é algo posterior.
Para debugar os valores de leitura do sensor, poderia fazer uma tela simples mostrando a leitura atual. Talvez colocar cores na tela do dispositivo para achar mais facilmente. Também é possível que seja necessário deixar que o usuário calibre esse valor. Claro que será necessário debugar direto em um dispositivo real, no simulador não faz sentido para calibrar.
Muito legal a ideia. Acho interessante existir alguma proteção além do próprio sistema operacional. Boa sorte.
Tenho mais experiência com C# principalmente no .Net Framework. E estudei um pouquinho do .Net Maui.