Is there a definite way to know if my phone supports USB-OTG or not?
USB OTG is a hardware capability. Software can't tell if the hardware has this capability or not if it's not configured to do so. The app you show is just confirming the presence of host.xml file that you have put yourself. Also you can confirm that form adb shell:

~$ pm list features | grep usb.host
# OR
~$ dumpsys package features | grep usb.host


For USB OTG to work, first your kernel should create a hardware entry in /sys as per device-tree mapping when you connect USB drive.
Secondly a device should be populated in /dev/bus/usb/... (and /dev/block/... if it's a storage device). It depends on uevent configuration on your ROM. Or you may also manually create device using mknod.

Thirdly you need to place host.xml file so that OS and apps can know that USB OTG support is present on device. Now apps can access USB device directly (provided that proper permissions are set on device path and node) by making use of host mode APIs.
Lastly if your ROM supports auto-mounting USB Storage devices (available on Android 6+), you should have an entry for vold in fstab. See How to disable USB OTG on Android 8.1?

As suggested, your Edit 1 shows that the changes in sysfs after attaching USB are only in debugfs, no hardware is detected by kernel.

One last thing you can do is to use a powered USB hub as suggested by @Robert in comment. Also check dmesg log for kernel messages and logcat for USBManager and USBHost messages in Java stack. If no hardware is detected then your hardware or at least kernel doesn't support USB.