This has now landed in master and should be available in edge
channel soon. To use the feature, one needs to set:
$ snap set system refresh.metered=hold
To revert (i.e. disable holding refreshes while on metered connections) do:
$ snap set system refresh.metered=null # or just refresh.metered=
The maximum time of holding refreshes while on metered connection is 60 days, aftere which a refresh will be attempted anyway.
Network Manager is the only supported source on information about the default connection being metered at the moment.