Can you add print statements in setup() and loop() to check after which function it hangs up? It might be that the readRange() function just blocks because it never receives a proper I2C answer.
The library will also output the results of I2C reads and writes if you add build_flags = -D I2C_DEBUG to the platformio.ini.