For those who are interested and have a similar problem, here is my current workaround. Since the problem is the 4K resolution, I created a script which sets the right resolution (just half in each dimension — e.g. my regular display is 3840x2160, so my “half” resolution is 1920x1080), starts darktable (along with resetting GDK_SCALE so that the interface isn’t gigantic), and cleans up by restoring the original resolution (--preferred argument to xrandr) after I exit darktable. This way, I get the awesome 4K display most of the time as well as responsive photo editing when I want it!
Of course, this workaround is most easily implemented in linux (is there even a command-line tool to set the screen resolution in Windows or macOS?). Here is the script I’m using:
#!/bin/bash
OUTPUT="eDP-1-1"
HALF_RES="1920x1080"
HALF_RES_DPI="96"
HIGH_RES_DPI="192"
DARKTABLE='firejail darktable --noiseprofiles ~/.config/darktable/noise/presets.json'
# Change resolution
xrandr --output $OUTPUT --mode $HALF_RES --dpi $HALF_RES_DPI;
# Start darktable
GDK_SCALE="" $DARKTABLE "$@";
# Change resolution back
xrandr --output $OUTPUT --preferred --dpi $HIGH_RES_DPI;
(I use firejail to sandbox programs, but that’s irrelevant — you can just as easily remove that and just start darktable "$@".)