О чего могут быть критические фризы?
Профайлить и дебажить в таком случае.

И кстати полное зависание - может быть банально из за ошибки в логике - где то бесконечный цикл или рекурсия без выхода
Так как на одних устройствах все работает хорошо, а на других замечены провисания могу предположить что дело в графических API. И провисание идет из-за Device.pressent или Semaphore.WaitForSignal. 

Edit > Project Settings > Player 
Посмотри стоит ли галка на Auto Graphics API 
Если не стоит поставь