So,
in the end I wrote some code to test all the Timer 2 input capture registers, with the relevant interrupt.
I jumpered PA0-PA3 to PD12-PD15 (the LEDs on the STM32F407 Discovery) and toggled them every 100ms, either in a Gray Code pattern to have at most a single IRQ pending/active, or downcounting 15-0 to have a nice 0000->1111 transition.
The code is attached below, just cobbled up together this evening (no style prize), one needs the F4 Cube (HAL+CMSIS) to compile it and "-std=c99".
I did not add UART or SWO output, lazy me, so I ended up using a debugger (eh, some say it's useless)

.
The TimerInit() and the ISR (TIM2_IRQHandler) are strictly modeled on the ones included in the OP (but I used CMSIS register and bit names).
This 0000->1111 event is shown in the screenshot.
Again check your hardware, and whether the pins are OK!