Not a lot to go on at this point. Off the top of my head ...
- a logic 'bug' in your monProcessWaits-based monitoring code
- long-running proc's session disconnects from ASE thus removing all entries for said session from monProcessWaits
- long-running proc runs a query that takes ~1 second of cpu time to process a query (eg, logical IOs and/or a merge/hash join); there are a ton of reasons why the same exact proc could have wide-ranging performance metrics based on differeing input parameters and/or uneven distribution of indexed data [would suggest monitoring monSysStatement, looking for cpu/wait times per statement]
- long-running proc invokes a (re)compilation cycle (eg, proc is recompiled, exec() statement is compiled, etc) that requires ~1 second of cpu time [assuming this is a ASE 15.x dataserver => (re)compilation overhead can show up in the form of excessive cpu utilization]