If I load my Emacs and wait until the idle timer fires, then this is the
sequence of events:
:init :idle <load> :config
But if I load Emacs and immediately type C-x L without waiting for the
idle timer to fire, this is the sequence of events:
:init <load> :config :idle
It's possible that the user could use `featurep` in their idle to test
for this case, but that's a subtlety I'd rather avoid.
What I would consider is this: `:idle [N]` is a keyword that simply
implies `:defer`, with an option number of N to specify a second count.
After that many seconds, if the package has not yet been loaded by
autoloading, it will be loaded via the idle timer.
This approach has the benefit of complete consistency for both the idle
and the autoloaded cases. Although, the fact that it implies `:defer`
means we don't have to consider what it means to add `:idle` behavior to
a demand-loaded configuration.