Fix for missing 'episodes' in metadata and 'scrobbler_logging' not handling failed progress updates properly
Started on sync task cancelling
Added 'core.task' to handle task canceling properly
Cleaned up excessive logging
Start of new sync progress system
Created new 'sync.sync_statistics' module to calculate progress and estimated time remaining
Fixed bug in SyncStatistics.reset and removed excessive logging
Fix for 'duration' conversion bug
Added task messages to sync status, trimmed long lines in 'interface.sync_menu'
Fixed 'waiting' bug in new task triggering
Fixed sync status message switching bug
Adjusted how active task data is retrieved, fixed bug with estimated time calculations
Switched to EMA for speed calculations
Adjusted EMA smoothing to resolve jumps in time remaining