How can I minimize UI lag? How can I minimize UI lag by ensuring that global UI elements (e.g. keyboard and notification drawer) don't compete for resources with every running application?
The UI lag is down to a number of things such:


Too many widgets (delete them, home launcher has to redraw screen upon closing the app drawer)
Home launcher - some redraw better than others (switch to different launcher)

Animation turned up to the highest value (i.e. turn it off), in ICS+, it is as simple as found in Settings > Developer Options:
Window Animation Scale
Transition Animation Scale
Animator duration Scale (JellyBean)
Force GPU Rendering (If that's ticked, it may not have any effect!) depending on:

the kernel version
GPU driver in context of kernel space
and the GPU driver itself, for example, Adreno*)


CPU (Important!!) Are we talking about old ARMv6 chipset or the newer ones that has either dual-core or quad-core?
What Android version? 


Older Android versions below Honeycomb, did suffer from some "janky" effects in terms of graphics redraw, more often than not, the chip-set was older and likewise for the kernel as well, which did not have the native Adreno graphics driver.

What happened in ICS upwards, was, Android took advantage of the native Adreno graphics drivers built into the kernel which was dynamically linked with the user-space Adreno driver that comes as standard and was found in kernels 3.x+ upwards, and also in general, in newer handsets since ICS was launched.