We have a spring converter (net.shibboleth.ext.spring.config.DurationToLongConverter) which converts ISO8601 into milliseconds. (PT3S => 3000)
If it encounters a non-duration is tries to interpret this as a long.
This is active for both custom and nativ syntax.
In case #IdP-646 we encountered a case where this was too helpful.
I should like to make all use of non durations as input to @Duration a warning, this avoids any confusion about units. However I fear that this would become very noisy and so we need to investigate this - turn it on and see how noisy it actually is.