What could be the cause? I/O completely died. Constant spinning, even logging in takes forever iMac 5K, late 2014 model. The weirdest thing happened yesterday. This machine is usually very performant — 8GB ram, 3TB Fusion drive. I dual-boot Windows on it using Boot Camp.
As of now, I still have 980GB free — this issue therefore cannot be due to low storage.
Background
The Mac ran perfectly fine until I used Photos.app to browse some photos (the app did a &quot;library permissions repair&quot;). Shortly after, I began experiencing frequent macOS user interface freezes (all apps, spinning beachball) for sometimes minutes on end.
Activity Monitor showed very low RAM pressure and barely any CPU stress at the time. Because I couldn't isolate the issue, I rebooted the Mac.
Now, even clicking the login picture hangs the computer for around 4-5 minutes. Yes, it takes that long to show the password field. After entering the password, the wallpaper appears 2 minutes in, the Dock appears in another 3 minutes, and menu bar widgets take around 2 minutes to appear each. Opening Launchpad hangs on &quot;Loading applications...&quot; for minutes on end, and each individual app icon loads in its own time.
More symptoms

Opening anything - System Preferences, About this Mac, Spotlight, Finder takes ages, and freezes the whole interface while it's waiting. In this frozen state, only the cursor moves and nothing else responds whatsoever.
If not clicking on anything, the whole interface freezes periodically for 2-3 minutes anyway.
For whatever reason, opened apps work completely fine — you can drag them around, and select list items in them. It appears that doing anything that requires any I/O, like switching Finder folders or System Preference panes, however, takes forever.
When I am able to open Activity Monitor, there are 0 culprits. No apps using the disk, RAM pressure is super low—although, perhaps normally, swap usage it at 0 bytes—and the CPU is virtually idle. Strange.
SSHing into the Mac from another box exhibits these same symptoms, suggesting it's not loginwindow. SSH takes about a minute to log in and every command takes forever to execute.

What I tried

I ran Apple Hardware Diagnostics (Cmd+D on startup). No hardware issues found.
I ran First Aid on the APFS volume in Recovery OS (Cmd+R on startup). No major issues found, and it seemed OK.
I removed /var/db/.applesetupdone in Single User Mode to force macOS to create a new admin account. The admin account suffers from the same symptoms.

System info
I'm running macOS Mojave 10.14.6 Beta. Yes, I'm aware it's beta software, but it worked fine for ages until yesterday. I'm not keen on reinstalling macOS, and doing a backup is impossible as I do not own an external hard drive of the Mac's capacity. In fact, the Mac sort of was my back-up hard drive in a sense.
What can I do? Do these symptoms ring a bell? It seems like I/O to me, but  I'm honestly quite lost.
Since this Mac is a backup, I would buy or find an external drive and install a clean OS there - leaving the internal drive and data untouched.

This lets you test the hardware with a clean OS with minimal risk to losing your data.

Then, since you don't have a drive big enough to back up all the data, you can wait to see if you want to throw out less important things until your data that needs to be backed up fits on the drive you have or you can fund a drive large enough to keep the data you choose to keep.

I wouldn't mess with things - slow IO and freezes out of the blue are usually two things:


fundamental errors / corruption to the data structures that a fsck can't or won't fix
hardware issues with spinning drives (SSD generally don't slow - they just fail when they can't accommodate any more bad blocks or the controller itself fails)


Both of the above, you need a backup to recover from in my experience and delaying making that backup, reduces what data you can save.