Your aggregator actor is currently doing two things: aggregating and storing. You can both solve your issue and simplify your system by splitting these two tasks. The single-responsibility-principle also applies to actors.
I'd create a dedicated actor for writing and a message class for holding the aggregated data. This actor sub-system should look like this:
Ideally, the time it takes to write to disk is shorter than the aggregation interval, such that your system remains stable. In case of spikes, the DataStore actor's queue will server as buffer for messages to be written to storage.
Depending on your application, you might need to implement some form of ack & retries in case you want to ensure that aggregated data has been written.