Performing the following test on a Block object pointing to a Target block, yields these results:
System.out.println(targetBlock.getType().name());
System.out.println(targetBlock.getState() instanceof Powerable);
System.out.println(targetBlock.getState() instanceof AnaloguePowerable);
[23:55:01] [Server thread/INFO]: TARGET
[23:55:01] [Server thread/INFO]: false
[23:55:01] [Server thread/INFO]: false
In my opinion, this means it is impossible to determine the power level of the block.
If determined to be valid, I wouldn't mind trying to fix this myself, but I wanted to gague community consensus on the issue first.