TimescaleDB = Store data with time component into "hypertable" that is automatically partitioned by time, for faster queries when limited by time range. Single node and has helper methods to make time based bucketing and aggregation easier.
Citus = Store data in distributed tables automatically partitioned and spread across multiple nodes, by any single column. Join across nodes with non-distributed tables.
Can definitely use PipelineDB for real-time summaries and TimescaleDB or Citus for raw long-term storage in the same database.
Side note: It would be nice if Postgres had package manager for extensions.