What is the purpose of key_value_expire table?
Beside the form cache and the update status the key_value_expire table is mainly used by the private and shared temp store. There you find a good explanation what the purpose of this data is:


  class PrivateTempStore
  
  Stores and retrieves temporary data for a given owner.
  
  A PrivateTempStore can be used to make temporary, non-cache data
  available across requests. The data for the PrivateTempStore is stored
  in one key/value collection. PrivateTempStore data expires
  automatically after a given timeframe.
  
  The PrivateTempStore is different from a cache, because the data in it
  is not yet saved permanently and so it cannot be rebuilt. Typically,
  the PrivateTempStore might be used to store work in progress that is
  later saved permanently elsewhere, e.g. autosave data, multistep
  forms, or in-progress changes to complex configuration that are not
  ready to be saved.
  
  The PrivateTempStore differs from the SharedTempStore in that all keys
  are ensured to be unique for a particular user and users can never
  share data. If you want to be able to share data between users or use
  it for locking, use \Drupal\user\SharedTempStore.


Reference:
https://api.drupal.org/api/drupal/core%21modules%21user%21src%21SharedTempStore.php/class/SharedTempStore/8.2.x
https://api.drupal.org/api/drupal/core!modules!user!src!PrivateTempStore.php/class/PrivateTempStore/8.2.x