I thank God for showing me the solution! All you have to do is add a “false foot” bone that is NOT a deform bone to each leg. I named this bone FootParent.
Connect this bone to the Lower_Leg bone (which has an IK constraint). Set FootParent’s Inherit Rotation and Inherit Scale to off, and add a Copy Rotation constraint which copies your Foot_IK bone (X + Y invert, Target: Local With Parent, Owner: Local).
Now duplicate this FootParent bone (or add a new one in the exact same location and orientation) and name it Foot. This will be your deform bone, and is NOT connected to anything.
Finally add 3 constraints to your Foot bone: Copy Location of the FootParent bone (Target: Local With Parent, Owner: Local); Copy Rotation of your Foot_IK bone (X + Y invert, Target: Local With Parent, Owner: Local), and optionally Copy Scale of your Foot_IK bone (Target: Local, Owner: Local). Now all your animations will export to FBX the way you created them in Blender!
(NOTE: Even though FootParent is not an actual deform bone, you can set “Deform” to on {just don’t assign any vertices to it} if you want the bone to export to UE4 when exporting “Deform Bones Only” {this may be useful for creating IK setups later on in Unreal, but has not been tested yet. You would likely need to find a way to have each disconnected Foot bone copy the transforms of the FootParent bone, which would be influenced by the IK solver. Again this has not been tested yet; if further information becomes available I will update this.})