There are lot of thigs that can be done as a customisation.

Few important are,

1) Reuse database connection if possible
2) Run analyze in separate threds/processes for different databases
3) Provide functionality of threshold in terms of disk blocks rather than rows
4) Add 'vacuum full', if users need it
5) Provide hint to administrator when 'vacuum full' becomes due.

Of course there will be many more things, but that's all I can think of now.
