The only absolute way to determine if the printer has finished is to ask it - which I'm afraid is outside of driver / spooler control. You'll need to use an SNMP query to the device.