The problem with using the filament monitor with prints streamed over USB is that when a problem occurs, the firmware needs to tell Octoprint:
"Hey, a problem has occurred so I've stopped processing moves. The reason is xxxxx. Stop sending me any more moves and go into manual mode. The first move you sent me that I didn't print is the one that you read at offset yyyyy in your print file, so when you resume the print, start sending me moves from that one."
If/when there is agreement on how to support this type of communication mechanism in GCode senders like Octoprint, we could implement the RepRapFirmware end of it.
I find the 180% surprising too!