No tengo la solución a tu problema (ojalá la tuviera) pero sí puedo darte otra pista de dónde buscar. Si estás seguro que en tu código no hay nada raro que provoque el comportamiento (bucles infinitos, threads colgados, etc...) puedes ir mirando las .dll que usa tu programa. Aunque no las uses explícitamente algunos componentes (como el TListView) usan DLL de Windows. También la conexión a la base de datos podría estar usando una o varias DLLs, si alguna es la culpable, el Administrador de Tareas de Windows te reportará que es tu aplicación la que hace el consumo aunque en realidad sea el código de alguna DLL.
Hay herramientas externas que te ayudan a identificar todas las DLLs que un programa está usando, por ejemplo el
PrcView